错误:解析器错误,解析了4344字节的0(Node.js) [英] Error: parser error, 0 of 4344 bytes parsed (Node.js)
问题描述
我正在尝试使用上传程序上传我的文件。我使用的代码是
I am trying to use an upload program to upload my files. The code that I use is
app.post('/photos',loadUser, function(req, res) {
var post = new Post();
req.form.complete(function(err, fields, files) {
if(err) {
console.log(err);
next(err);
} else {
ins = fs.createReadStream(files.file.path);
ous = fs.createWriteStream(__dirname + '/public/uploads/photos/' + files.file.filename);
post.filename=files.file.filename;
post.file=files.file.path;
util.pump(ins, ous, function(err) {
if(err) {
next(err);
} else {
post.save(function(err,docs) {
req.flash('info', 'information Saved');
res.redirect('/photos');
});
}
});
}
});
});
当我删除loadUser方法时,一切正常,但是当我使用 loadUser
方法它给我一个错误。错误的控制台信息是:
When I remove loadUser method everything is working fine, but when I use the loadUser
method it is giving me an error. The console information of the error is:
Error: parser error, 0 of 4344 bytes parsed
at IncomingForm.write (/home/darhamid/node_modules/formidable/lib/incoming_form.js:141:17)
at IncomingMessage.<anonymous> (/home/darhamid/node_modules/formidable/lib/incoming_form.js:91:12)
at IncomingMessage.emit (events.js:67:17)
at HTTPParser.onBody (http.js:121:23)
at Socket.ondata (http.js:1349:22)
at TCP.onread (net_uv.js:312:27)
该错误仅在我使用loadUser函数时引起,如果我删除loadUser Funciton一切正常。
我不知道背后的原因而且卡住了。有人可以帮我吗?
The error is caused only when i use loadUser function, if i remove the loadUser Funciton everything is working fine. I don't know the reason behind this and am stuck. Can anyone help me please?
推荐答案
你正试图在所有事情之前执行数据库操作,这会给你带来麻烦。请尝试以下代码:
You are trying to perform database operation before everything, which is creating problems for you. Try the following code:
app.post('/potos', function(req, res, next) {
//req.form.pause();
req.form.complete(function(err, fields, files) {
if(err) {
next(err);
} else {
ins = fs.createReadStream(files.file.path);
ous = fs.createWriteStream(__dirname + '/public/uploads/photos/' + files.file.filename);
var post = new Post();
post.filename=files.file.filename;
post.file=files.file.path;
post.created_at = new Date();
post.user_id = req.session.user_id;
function postCreationFailed() {
req.flash('error', 'Unable to Download ');
res.render('photos/new', {
locals: {
post: new Post(),currentUser: req.session.user_id
}
});
}
util.pump(ins, ous, function(err) {
if(err) {
next(err);
} else {
console.log('\nuploaded %s to %s', files.file.filename, files.file.path);
post.save(function(err) {
if (err)
return postCreationFailed();
req.flash('info', 'photos Succesfully Uploaded');
res.redirect('/user/photos/'+post.user_id);
});
}
});
}
});
req.form.on('progress', function(bytesReceived, bytesExpected){
var percent = (bytesReceived / bytesExpected * 100) | 0;
process.stdout.write('Uploading: %' + percent + '\r');
});
});
祝你好运......
Good luck...
这篇关于错误:解析器错误,解析了4344字节的0(Node.js)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!