gpt4 book ai didi

javascript - 我可以同时使用 body-parser 和 Formidable 吗?

转载 作者:搜寻专家 更新时间:2023-11-01 00:15:02 25 4
gpt4 key购买 nike

我这几天想解决一个问题,但有些东西还是不明白。我有一个使用 NodeJS 和 ExpressJS 创建的网站,为了处理表单,我使用 body-parser。

    var adName = req.body.adName;
var adMessage = req.body.adMessage;
var phone = req.body.phone;
var rawPrice = req.body.price;
var rawCurrency = req.body.currency;

因此,我使用这种方法处理表单值。但是现在,我需要使用 node-formidable 来解析来自用户的图像。问题是,我能以某种方式使用吗仅对图像和表单的主体解析器令人生畏?或者,任何人都可以帮助我理解如何处理表单并将值附加到我的变量吗?

最佳答案

您可能需要花一些时间学习/练习这个强大的模块。查看此网址:https://github.com/felixge/node-formidable

是的,formidable 可用于处理表单字段和文件上传,包括多个文件上传。主体解析器中间件不处理多部分 - https://github.com/expressjs/body-parser .在这种情况下,我建议您使用 formidable 和 drop body-parser。

看看下面的 express 应用程序是否能帮助您。

var formidable = require('formidable'),
util = require('util'),
express = require('express'),
app = express();

app.set('port', process.env.PORT || 3600);
app.get('/', function (req, res) {
res.send(
'<form action="/upload" enctype="multipart/form-data" method="post">'+
'<input type="text" name="adName" placeholder="adName"><br>'+
'<input type="text" name="adMessage" placeholder="adMessage"><br>'+
'<input type="text" name="phone" placeholder="phone"><br>'+
'<input type="text" name="rawPrice" placeholder="rawprice"><br>'+
'<input type="text" name="rawCurrency" placeholder="rawcurrency"><br>'+
'<input type="file" name="upload" multiple="multiple"><br>'+
'<input type="submit" value="Upload">'+
'</form>'
);
});

app.post('/upload', function(req, res){
var form = new formidable.IncomingForm();
form.uploadDir = __dirname + "/data";
form.parse(req, function(err, fields, files) {
//fields is an object containing all your fields, do waht ever you want with them from here
//file is an object containing properties of your uploaded file
res.send(util.inspect({fields: fields, files: files}));
console.log('file uploaded : ' + files.upload.path + '/' + files.upload.name);
console.log('Fields : ' + fields.adName);//you can access all your fields
});
});

//starting server
app.listen(app.get('port'), function () {
console.log('Express is listening: http://localhost:%s;', app.get('port'));
});

关于javascript - 我可以同时使用 body-parser 和 Formidable 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26996333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com