如何从nodejs / express向浏览器发送成功状态?

时间:2012-11-15 12:38:49

标签: forms node.js post 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文件。

这完美无缺。但是客户仍处于某种状态,并最终超时。所以我需要将某种成功状态或成功标题发送回客户端。

我该怎么做?

提前谢谢!

4 个答案:

答案 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);
}