Javascript expressjsmulter文件传输

Javascript expressjsmulter文件传输,javascript,node.js,express,Javascript,Node.js,Express,这是文件的开始。在服务器启动期间,它始终显示以下消息 /usr/lib/node_modules/multer/node_modules/mkdirp/index.js:90 抛出错误0; ^错误:EACCES,权限被拒绝'/new' 在Object.fs.mkdirSync fs.js:654:18 在Function.sync/usr/lib/node_modules/multer/node_modules/mkdirp/index.js:71:13 在新的DiskStorage/usr/l

这是文件的开始。在服务器启动期间,它始终显示以下消息

/usr/lib/node_modules/multer/node_modules/mkdirp/index.js:90 抛出错误0; ^错误:EACCES,权限被拒绝'/new' 在Object.fs.mkdirSync fs.js:654:18 在Function.sync/usr/lib/node_modules/multer/node_modules/mkdirp/index.js:71:13 在新的DiskStorage/usr/lib/node_modules/multer/storage/disk.js:21:12 在module.exports/usr/lib/node_modules/multer/storage/disk.js:65:10 在new Multer/usr/lib/node_modules/Multer/index.js:15:20 在multer/usr/lib/node_modules/multer/index.js:75:12 反对/var/www/node/server.js:10:9 在Module._编译Module.js:456:26 在Object.Module._extensions..js Module.js:474:10 在Module.load Module.js:356:32


如果有人能帮我预防这个问题,请告诉我。非常感谢。

multer正在尝试在全局节点位置创建一个目标文件夹/new。更改到本地目的地的路径。试试下面的方法

var express = require('express');
var app = express();
var fs = require("fs");

var bodyParser = require('body-parser');
var multer  = require('multer');

app.use(express.static('public'));
app.use(bodyParser.urlencoded({ extended: false }));
app.use(multer({ dest: '/new/'}));
如果您在上述操作中遇到错误,请尝试

app.use(multer({ dest: './new/'}));
你有两个问题:

1将全局目标路径设置为multer。multer没有创建该路径的权限,这是正确的。我怀疑您想在项目中创建“new”目录,如果是,请将路径更改为“./new/”。当你解决这个问题,那么我们有第二个问题

2多模块更改API。它将不起作用:

app.use(multer({ dest: __dirname +'/new/'}));
除非你有一个旧版本的multer,否则不要使用旧版本,因为它有安全性。查看文档页面了解如何使用multer:。您可以查看我对类似问题的回答:。简言之:

配置目标路径:

app.use(multer({ dest: './new/'}));
然后在每个要上载文件的路径中

var upload = multer({ dest: './new' })

这些给了我这个错误:TypeError:app.use需要中间件functions@EmamulAndalibAyon你试过Krzysztof Sztompka答案吗?添加dirname刚刚解决了我已经处理了3个小时的问题。谢谢你,拉姆!!!
app.post('/profile', upload.single('fieldname'), function (req, res, next) {
//req.file has data of uploaded file
}