我已按照express multipart example将文件上传到服务器,但工作正常。但是,如果我使用像这样的路由中间件(coffeescript):
loadUser = (req, res, next) ->
if req.session.user_id?
db.user.findById req.session.user_id, (err, user) ->
if user?
req.currentUser = user
next()
else
next()
else
next()
app.post '/file',loadUser, (req, res) ->
req.form.complete (err, fields, files) ->
if (err)
console.error err
else
console.log '\nuploaded %s to %s', files.image.filename, files.image.path
req.form.on 'progress', (bytesReceived, bytesExpected) ->
percent = (bytesReceived / bytesExpected * 100) | 0;
process.stdout.write 'Uploading: %' + percent + '\r'
文件没有上传,没有任何日志,也没有错误。 然后我清除loadUser中的代码,如下所示:
loadUser = (req, res, next) ->
next()
再次正常工作。 我的loadUser方法有什么问题吗?
答案 0 :(得分:1)
我发现了问题,因为当程序路由到'/ file'时,form.complete已经在loadUser中间件中发出。所以没有任何记录,也没有错误。