我有一个带有两个输入的HTML表单 - 1个文本和1个文件。
<form method="post" action="http://localhost:3000/users">
<input type="text" name="username" />
<input type="file" name="file" />
<button type="submit">Submit</button>
</form>
现在我将它发布到节点服务器 -
router.post('/users', function(req, res, next){
req.pipe(req.busboy);
req.busboy.on('file', function(fieldname, file, filename){
var fstream=fs.createWriteStream('./uploads/'+filename);
file.pipe(fstream);
fstream.on('close', function(){
var user = User({
username: req.body.username,
});
user.save(function(err){
if(err)
res.json({error: err});
else
res.redirect('/');
});
});
});
});
但我只能获得用户名或文件(当我在HTML表单中使用enctype="multipart/form-data"
时)。
有没有办法在单个请求中保存两者。如果是,那么如何?
感谢任何帮助。
感谢。
答案 0 :(得分:1)
您只是在侦听文件字段。如果您希望收到有关非文件字段的通知,那么您还需要添加'field'
事件监听器:
req.busboy.on('field', function(key, val, keyTrunc, valTrunc) {
console.log(key, val);
});