我正在 node.js 中编写文件上传器,我遵循了文档,并且在我的 mac 上工作时,文件有时会上传。在我的 Windows 电脑上,文件根本不会上传。
我正在使用 express 框架,并且该应用程序托管在外部服务器上。我在尝试上传时遇到的错误是:
Error: unintialized parser
at IncomingForm.write (/srv/node/test-app/node_modules/express/node_modules/connect/node_modules/formidable/lib/incoming_form.js:130:17)
at IncomingMessage.<anonymous> (/srv/node/test-app/node_modules/express/node_modules/connect/node_modules/formidable/lib/incoming_form.js:87:12)
at IncomingMessage.EventEmitter.emit (events.js:95:17)
at IncomingMessage.<anonymous> (_stream_readable.js:720:14)
at IncomingMessage.EventEmitter.emit (events.js:92:17)
at emitDataEvents (_stream_readable.js:745:10)
at IncomingMessage.Readable.on (_stream_readable.js:666:5)
at IncomingForm.parse (/srv/node/test-app/node_modules/express/node_modules/connect/node_modules/formidable/lib/incoming_form.js:86:6)
at /srv/node/frog-jam/node_modules/express/node_modules/connect/lib/middleware/multipart.js:125:12
at noop (/srv/node/frog-jam/node_modules/express/node_modules/connect/lib/middleware/multipart.js:22:3)
我通过表单发布图像,在服务器端我有处理文件上传的代码:
fs.rename(req.files.image.path
, '/path/to/new/folder/' + req.files.image.name
, function(err) {
if(err) return res.json(err);
return res.json({message:'Upload complete'});
}
);
我已经在此方法中及其周围添加了控制台日志,但似乎它没有进入控制器方法。我自己没有任何中间件来处理文件上传,这条路线上也没有任何中间件。
所有上传目的地也是正确的,因为它偶尔会在我的 mac book 上工作。