2011-10-08 29 views
1

我已经按照express multipart example上传文件到服务器,它工作正常。但是,如果使用路由中间件像这样(的CoffeeScript):上传文件与nodejs和连接形式

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方法有什么问题吗?

回答

1

我发现这个问题,因为当程序路由到'/ file'时,form.complete已经在loadUser中间件中发出。所以没有任何记录,也没有错误。