0

我正在尝试上传图片文件,使用multer. 这是我的代码:

router.post('/', function (req, res) {
    upload(req, res, function (err) {
    if (err) {
  // An error occurred when uploading
  conole.log(err);
  return;
}

// Everything went fine
var data = Object.assign({picture: req.file && req.file.filename}, req.body);
db.create('devices', data)
.then(function(data){
    res.render('msg', {msg: 'Added device '+ data[0]});
})
.catch(function(err){
    console.log(err);
});

});

});

但是,当我尝试从命令行运行服务器时node app.js,一切都按预期工作。但是当我从 Windows 服务运行它时,使用node-windows,它似乎不起作用,而我没有收到任何错误。(意思是图片文件名实际上记录在数据库中,但是文件没有上传。可能是目的地问题吗?如果是,我将提供我的目的地代码:

var storage = multer.diskStorage({
destination: './public/uploads/',
filename: function (req, file, cb) {
  cb(null,  file.originalname + "-" + Date.now() + path.extname(file.originalname));
}
});
4

1 回答 1

4

从您的代码中删除这一行

destination: './public/uploads/',

并添加此代码

destination: __dirname+'../../../uploads',

这将适用于 mac OS 和 windows

于 2018-10-04T08:38:01.083 回答