2011-10-08 62 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中間件中發出。所以沒有任何記錄,也沒有錯誤。