1

正直なところ、このエラーが存在する理由がわからないため、これ以上説明することはできません。まず、エラーが発生するコードは次のとおりです。

app.get '/image/:id', (req, res, next) ->
    images.get req.params.id, (err, doc) ->
        if err then next err else
            res.contentType doc._attachments.image.content_type
            img = images.getAttachment doc.id, 'image'
            img.on 'data', (chunk) ->
                res.write chunk, 'binary'
            img.on 'end', ->
                res.end()

問題はどこかにあるに違いないと確信しています。/uploadアップロードされた画像をすぐに表示するために、これにリダイレクトするルートがあります。

そして、私はこのエラーを受け取ります:

TypeError: Cannot call method 'replace' of undefined
    at Object.lookup (/home/scan/Javascript/acres/node_modules/express/node_modules/mime/mime.js:62:20)
    at ServerResponse.contentType (/home/scan/Javascript/acres/node_modules/express/lib/response.js:209:43)
    at Object.callback (/home/scan/Javascript/acres/app.coffee:105:13)
    at Object.get (/home/scan/Javascript/acres/node_modules/cradle/lib/cradle.js:316:33)
    at /home/scan/Javascript/acres/app.coffee:100:19
    at callbacks (/home/scan/Javascript/acres/node_modules/express/lib/router/index.js:272:11)
    at param (/home/scan/Javascript/acres/node_modules/express/lib/router/index.js:246:11)
    at param (/home/scan/Javascript/acres/node_modules/express/lib/router/index.js:243:11)
    at pass (/home/scan/Javascript/acres/node_modules/express/lib/router/index.js:253:5)
    at Router._dispatch (/home/scan/Javascript/acres/node_modules/express/lib/router/index.js:280:4)

もちろん、どの値が問題を引き起こしているのかを正確に調べたかったので、console.logネストごとにコードを変更しました。nodemonアプリを再起動すると、この画像の魅力のように機能します。このコードで。

だから私は別の、まったく同じエラーをアップロードします。コードの変更、再起動は、このイメージで機能します。

では、どこが間違っているのでしょうか、またはアップロードのたびに再起動する必要がありますか?

編集:システムに関するいくつかの情報:

connect-cradle@0.1.0
connect-form@0.2.1
cradle@0.5.7
express@2.4.6
node@0.4.12
4

1 に答える 1

1

コール スタックの 2 行目に注意してください。

ServerResponse.contentType (/home/scan/Javascript/acres/node_modules/express/lib/response.js:209:43) で

そのため、呼び出しでエラーが発生しています。これは にres.contentType渡さdoc._attachments.image.content_typemime.lookup、それを呼び出します.replace。要するに、問題doc._attachments.image.content_typeは未定義です。

少なくともデバッグ作業を開始できることを願っています。

于 2011-10-23T03:57:03.770 に答える