Javascript 无法在node.js中发布
我想使用node.js上传文件,因为它是新的,我尝试检查文件是否正在发送到服务器。 html 当我上传东西时,它会抛出错误 无法读取未定义的文件 作为后端新手,我不知道为什么会发生这种情况,为什么服务器不接收文件?您需要Javascript 无法在node.js中发布,javascript,node.js,express,Javascript,Node.js,Express,我想使用node.js上传文件,因为它是新的,我尝试检查文件是否正在发送到服务器。 html 当我上传东西时,它会抛出错误 无法读取未定义的文件 作为后端新手,我不知道为什么会发生这种情况,为什么服务器不接收文件?您需要app.use()文件解析器。例如,您可以使用。你可以在上面的链接获得更多关于选项和用法的信息;简单的设置如下所示: var busboy = require('connect-busboy'); app.use(busboy()); app.post("/img",funct
app.use()
文件解析器。例如,您可以使用。你可以在上面的链接获得更多关于选项和用法的信息;简单的设置如下所示:
var busboy = require('connect-busboy');
app.use(busboy());
app.post("/img",function(req,res){
req.busboy.on('file', function (fieldname, file, filename, encoding, mimetype) {
// ...
});
req.busboy.on('field', function (key, value, keyTruncated, valueTruncated) {
// ...
});
req.pipe(req.busboy);
// etc ...
});
如上所述,您必须为多部分实体使用实体解析器,但更好的解决方案是使用express中间件,它允许您像在OP中一样使用
req.files
此外,multer构建在busboy之上,busboy是node.js最快的多部分主体解析器
对于multer:
var express = require('express'),
multer = require("multer"),
app = express();
app.use(multer({
dest: path.resolve(__root + path.sep + config.get("localFolders").rawImages),
limits: {
files: 2
}
}));
// handle file upload
app.post("/img", function (req, res, next) {
var image = req.files.image;
// do something with image;
console.log(image.name);
});
在上面提供的链接中查看multer的文档。祝你好运 哪一行抛出了这个错误?fileparser没有内置/本机modile,或者我必须使用外部模块来实现吗?我是begginer,一开始我想不使用外部模块就知道它不,没有。你唯一的选择就是自己编写代码@杰迪姆对此很感兴趣。我知道我可能会使用一些模块,但我在哪里可以读到这些——关于创建自己的文件解析器背后的东西?我找不到任何东西,我认为一个好的起点应该是阅读现有文件解析器的源代码,如上文所述。然后,您还可以找到在谷歌搜索部分内容的术语it@J.ddexpress有一个完整的中间件用于解析上传的文件。请在下面查看我的回答。:)
var busboy = require('connect-busboy');
app.use(busboy());
app.post("/img",function(req,res){
req.busboy.on('file', function (fieldname, file, filename, encoding, mimetype) {
// ...
});
req.busboy.on('field', function (key, value, keyTruncated, valueTruncated) {
// ...
});
req.pipe(req.busboy);
// etc ...
});
var express = require('express'),
multer = require("multer"),
app = express();
app.use(multer({
dest: path.resolve(__root + path.sep + config.get("localFolders").rawImages),
limits: {
files: 2
}
}));
// handle file upload
app.post("/img", function (req, res, next) {
var image = req.files.image;
// do something with image;
console.log(image.name);
});