gpt4 book ai didi

javascript - 使用连接表单上传文件

转载 作者:太空宇宙 更新时间:2023-11-04 01:15:56 25 4
gpt4 key购买 nike

我尝试使用connect-form上传文件,但是如果我想上传,我必须在app.js中禁用bodyParser(),如果我保留bodyParser(),则会出现错误:永久加载
这是我的app.js:

    app.configure(function(){
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.set('view option', { layout: false });

// app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(require('stylus').middleware({ src: __dirname + '/public' }));

app.use(express.static(__dirname + '/public'));
app.use(express.cookieParser());
app.use(express.session({secret: 'secrect', store: MemStore({
reapInterval: 60000 * 10
})}));
app.use(app.router);
});

这是我调用的代码上传文件

app.post('/album/upload', function( req, res) {
req.form.complete(function(err, fields, files) {
if (err) { next(err); console.log('error upload') }
else {
console.log(fields);
console.log('---------------');
console.log(files);
res.send('upload successfull');
}
});
});

那么,当我调用上传文件时,如何禁用 bodyParser() ,或者无论如何帮助我上传文件不会出现错误。

最佳答案

有两件事:

  • Express 基于 connect。
  • bodyParser基于formidable,connect-form基于formidable。

拥有 bodyParser 和 connect-form 就像解析请求正文两次,但第二次时,网络流为空,将无法解析任何内容,永远等待输入。

当 connect 2.0 发布时,这个问题就出现了,它具有处理多部分请求的扩展功能,使得 connect-form 过时了。

无论如何,文件都应该只使用 bodyParser 上传,并存储在 req.files

看一下: https://github.com/senchalabs/connect/blob/master/lib/middleware/multipart.js (这就是express在遇到多部分请求时对bodyParser所做的事情。)

关于javascript - 使用连接表单上传文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8798675/

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