Mongodb 过帐数据时获取超时错误
js。我正在尝试使用node.js和mongodb创建文件上载。我在发布数据时遇到超时错误。我使用的代码是:Mongodb 过帐数据时获取超时错误,mongodb,node.js,express,mongoose,Mongodb,Node.js,Express,Mongoose,js。我正在尝试使用node.js和mongodb创建文件上载。我在发布数据时遇到超时错误。我使用的代码是: app.post('/photos/new', function(req, res) { var photo = new Photo(); req.form.complete(function(err, fields, files) { if(err) { next(err); } else { ins = fs.createReadStr
app.post('/photos/new', function(req, res) {
var photo = new Photo();
req.form.complete(function(err, fields, files) {
if(err) {
next(err);
} else {
ins = fs.createReadStream(files.file.path);
ous = fs.createWriteStream(__dirname + '/static/uploads/photos/' + files.file.filename);
util.pump(ins, ous, function(err) {
if(err) {
next(err);
} else { photos.save({
filename: files.file.filename,
file: files.file.path
}, function(error, docs) {
res.redirect('/photos');
});
}
});
//console.log('\nUploaded %s to %s', files.photo.filename, files.photo.path);
//res.send('Uploaded ' + files.photo.filename + ' to ' + files.photo.path);
}
});
});
当我单击submit按钮时,出现以下错误
错误:发布/照片/新建超时
at Object.\u onTimeout(/home/nodeexmple/node\u modules/connect timeout/index.js:12:22)
在Timer.ontimeout(timers_uv.js:84:39)
请提供帮助。您正在使用该模块,以便在页面加载时间超过X秒时(服务器端)向用户显示消息
很明显,上传页面可能占用的时间不止这些,因此您应该在上传路径中清除超时,如下所示:
app.post('/photos/new', function(req, res) {
req.clearTimeout();
...
var post = new Post();
post.filename=files.file.filename;
post.file=files.file.path;
post.save(function(err) {
if (err)
return postCreationFailed();
req.flash('info', 'photos Succesfully Uploaded');
res.redirect('were u want to redirect');
});
阅读有关its上连接超时的更多信息。请参阅此答案
此外,您还可以使用上面Alex建议的req.clearTimeout()
我相信你的代码的这一部分正在产生你应该避免的问题
photos.save({
filename: files.file.filename,
file: files.file.path
}, function(error, docs) {
res.redirect('/photos');
});
而是像这样使用:
app.post('/photos/new', function(req, res) {
req.clearTimeout();
...
var post = new Post();
post.filename=files.file.filename;
post.file=files.file.path;
post.save(function(err) {
if (err)
return postCreationFailed();
req.flash('info', 'photos Succesfully Uploaded');
res.redirect('were u want to redirect');
});
然后像这样:
app.post('/photos/new', function(req, res) {
req.clearTimeout();
...
var post = new Post();
post.filename=files.file.filename;
post.file=files.file.path;
post.save(function(err) {
if (err)
return postCreationFailed();
req.flash('info', 'photos Succesfully Uploaded');
res.redirect('were u want to redirect');
});
希望这能解决你的问题