80

我在我的 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

4 回答 4

160

2015 年快速更新:

改用这个:

res.sendStatus(200)

这已被弃用:

res.send(200)  
于 2015-02-18T20:57:15.753 回答
30

只是想补充一点,您可以通过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"});
于 2012-11-15T14:12:28.073 回答
13

在快递 4 中,您应该这样做:

res.status(200).json({status:"ok"})

而不是弃用的:

res.json(200,{status:"ok"})
于 2015-04-29T07:17:32.680 回答
11

Jup,你需要回复一个答案,最简单的是

res.send(200);

writeFile.

200 是一个 HTTP 状态码,所以你甚至可以在失败的情况下改变它:

if (err) {
    res.send(500);
} else {
    res.send(200);
}
于 2012-11-15T12:56:15.353 回答