我在nodeJS / Expressjs服务器中编写了以下代码:
app.post('/settings', function(req, res){
var myData = {
a: req.param('a')
,b: req.param('b')
,c: req.param('c')
,d: req.param('d')
}
var outputFilename = 'config.json';
fs.writeFile(outputFilename, JSON.stringify(myData, null, 4), function(err) {
if(err) {
console.log(err);
} else {
console.log("Config file as been overwriten");
}
});
});
这允许我获取提交的表单数据并将其写入JSON文件。
这完美无缺。但是客户仍处于某种状态,并最终超时。所以我需要将某种成功状态或成功标题发送回客户端。
我该怎么做?
提前谢谢!
答案 0 :(得分:105)
Express Update 2015:
请改用:
res.sendStatus(200)
这已被弃用:
res.send(200)
答案 1 :(得分:27)
只是想补充一点,你可以通过res.json()
助手发送json。
res.json({ok:true}); // status 200 is default
<击> 撞击>
<击>res.json(500, {error:"internal server error"}); // status 500
击> <击> 撞击>
2015年更新:
res.json(status, obj)
已弃用,取而代之的是res.status(status).json(obj)
res.status(500).json({error: "Internal server error"});
答案 2 :(得分:9)
在快递4中你应该这样做:
res.status(200).json({status:"ok"})
而不是弃用的:
res.json(200,{status:"ok"})
答案 3 :(得分:8)
Jup,你需要回复一个答案,最简单的就是
res.send(200);
在writeFile
的回调处理程序中。
200是HTTP状态代码,因此您甚至可以在发生故障时改变它:
if (err) {
res.send(500);
} else {
res.send(200);
}