如何从nodejs / express向浏览器发送成功状态?
我已经在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文件。
这完美的作品。 但客户仍处于某种发布状态,最终超时。 所以我需要发送某种成功的状态或成功标题回到客户端。
我应该怎么做?
先谢谢你!
2015年快车更新:
用这个代替:
res.sendStatus(200)
这已被弃用:
res.send(200)
只是想添加,你可以通过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"});
Jup,你需要回答一个答案,最简单的就是
res.send(200);
在writeFile
的callback处理程序中。
200是一个HTTP状态代码,所以你甚至可以改变这种情况下的失败:
if (err) { res.send(500); } else { res.send(200); }
在快递4中,您应该这样做:
res.status(200).json({status:"ok"})
而不是弃用的:
res.json(200,{status:"ok"})