无法阅读属性&display; imageImage'未定义的

时间:2014-11-08 15:41:46

标签: node.js express pug formidable

我正在使用节点js开发一个Web应用程序。当尝试上传图片并保存在应用程序的文件系统中时,我收到错误:

Cannot read property 'displayImage' of undefined

我的图片帖子代码如下:

router.post('/upload', function (req, res, next) {
  fs.readFile( req.files.displayImage.path, function (err, data) {
    var newPath = __dirname + "/uploads/uploadedFileName";
    fs.rename(newPath, 'filename', function (err) {
        res.redirect('/');
    });
  });
});

在视图中

form(action="upload", method="post", enctype="multipart/form-data")
    input(type="file", name="displayImage")
    input(type='submit')

非常感谢你的帮助!

PS:我也读过一些使用formidable模块的教程。建议使用它还是我已经做的就足够了?

1 个答案:

答案 0 :(得分:1)

您使用的是哪个版本的快递?在Express 4.0中,对于多部分机构,您应该使用替代方案。

例如,您可以使用multer npm module

实施上传文件
var multer = require('multer');

app.use(multer({dest: './uploads/'}));

//app.post('/upload', function (req, res, next) {
//    console.log(req.files);
//});