【发布时间】:2015-10-08 08:55:18
【问题描述】:
我刚刚开始学习 NodeJS,但遇到了一个问题。我想将文件上传到我的服务器。为此,我搜索并找到了这个模块multer。按照 GitHub 上的示例进行操作:
var express = require('express');
var multer = require('multer');
var upload = multer({ dest: 'uploads/' });
var app = express()
app.post('/uploadImage', upload.single('image'), function(req, res) {
console.log(req.file);
});
在将带有 FormData 的图像发布到/uploadImage 时,图像将保存在uploads/ 目录中。问题是图像以一个奇怪的名称保存,我想用它的原始名称保存它。
为此,我知道我必须调用app.use(multer({ dest: 'uploads/' }))',然后我才能在我的函数中访问req.file,例如:
app.post('/uploadImage', function(req, res) {
console.log(req.file);
});
但我在尝试 app.use() 时遇到错误:
TypeError: app.use() requires middleware functions
at EventEmitter.use (project\node_modules\express\lib\application
.js:209:11)
我正在使用 NodeJS 0.12.7 和 Express 4.13.1
如何实现该上传?谢谢。
【问题讨论】:
-
哦,我的...我发誓我已经在这里搜索过...谢谢stdob...但是,奇怪的是(对我来说)它仍然会以这种方式自动上传文件...我虽然我会可以用
fs控制和写...我会想办法的,谢谢