使用nodejs和connect-form上传文件

时间:2011-10-08 16:23:58

标签: forms node.js file-upload express

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

1 个答案:

答案 0 :(得分:1)

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