服务员挂起(在 express.js 中)
Busboy hangs (in express.js)
我尝试在 express 框架中使用 Busboy。我想不用 multer 直接使用它只是为了了解它是如何工作的。我停在第一个例子上,不知道错误在哪里。我很难调查,因为它只是挂起,没有任何错误消息。
我从 URL 复制了演示代码:https://www.npmjs.com/package/busboy
并将其粘贴到我的快递申请中,如下所示:
app.get('/files/new', function(req, res) {
//res.send(req.headers)
res.send('<html><head></head><body>\
<form method="POST" enctype="multipart/form-data" action="/files">\
<input type="text" name="textfield"><br />\
<input type="file" name="filefield"><br />\
<input type="submit">\
</form>\
</body></html>')
})
app.post('/files', function(req, res) {
console.log("files post")
var busboy = new Busboy({ headers: req.headers });
busboy.on('file', function(fieldname, file, filename, encoding, mimetype) {
console.log('File [' + fieldname + ']: filename: ' + filename + ', encoding: ' + encoding + ', mimetype: ' + mimetype);
file.on('data', function(data) {
console.log('File [' + fieldname + '] got ' + data.length + ' bytes');
});
file.on('end', function() {
console.log('File [' + fieldname + '] Finished');
});
});
busboy.on('field', function(fieldname, val, fieldnameTruncated, valTruncated, encoding, mimetype) {
console.log('Field [' + fieldname + ']: value: ' + inspect(val));
});
busboy.on('finish', function() {
console.log('Done parsing form!');
res.send("Done")
});
})
每次发送文件时,我都会在控制台中收到以下输出:
Server started....
files post
浏览器挂了。
任何人都可以指出可能导致问题的原因吗?
好的,我找到挂起的原因了。我 mistekaly 忘记关闭连接,下面几行:
busboy.on('finish', function() {
res.writeHead(200, { 'Connection': 'close' });
res.end("Done parsing form!");
});
我尝试在 express 框架中使用 Busboy。我想不用 multer 直接使用它只是为了了解它是如何工作的。我停在第一个例子上,不知道错误在哪里。我很难调查,因为它只是挂起,没有任何错误消息。
我从 URL 复制了演示代码:https://www.npmjs.com/package/busboy
并将其粘贴到我的快递申请中,如下所示:
app.get('/files/new', function(req, res) {
//res.send(req.headers)
res.send('<html><head></head><body>\
<form method="POST" enctype="multipart/form-data" action="/files">\
<input type="text" name="textfield"><br />\
<input type="file" name="filefield"><br />\
<input type="submit">\
</form>\
</body></html>')
})
app.post('/files', function(req, res) {
console.log("files post")
var busboy = new Busboy({ headers: req.headers });
busboy.on('file', function(fieldname, file, filename, encoding, mimetype) {
console.log('File [' + fieldname + ']: filename: ' + filename + ', encoding: ' + encoding + ', mimetype: ' + mimetype);
file.on('data', function(data) {
console.log('File [' + fieldname + '] got ' + data.length + ' bytes');
});
file.on('end', function() {
console.log('File [' + fieldname + '] Finished');
});
});
busboy.on('field', function(fieldname, val, fieldnameTruncated, valTruncated, encoding, mimetype) {
console.log('Field [' + fieldname + ']: value: ' + inspect(val));
});
busboy.on('finish', function() {
console.log('Done parsing form!');
res.send("Done")
});
})
每次发送文件时,我都会在控制台中收到以下输出:
Server started....
files post
浏览器挂了。
任何人都可以指出可能导致问题的原因吗?
好的,我找到挂起的原因了。我 mistekaly 忘记关闭连接,下面几行:
busboy.on('finish', function() {
res.writeHead(200, { 'Connection': 'close' });
res.end("Done parsing form!");
});