我怎样才能发送成功的状态,从浏览器的NodeJS /表达什么?(How can I send a s

2019-07-03 20:57发布

我已经写了下面的一段代码在我的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文件。

这完美的作品。 但客户仍然在某种发布状态,并最终超时的。 所以,我需要发送某种成功状态或成功标头返回给客户端。

我应该怎么办呢?

先感谢您!

Answer 1:

快速更新2015年:

使用这个来代替:

res.sendStatus(200)

这已被弃用:

res.send(200)  


Answer 2:

只是想补充一点,你可以通过发送JSON res.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"});


Answer 3:

在快递4,你应该做的:

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

而不是弃用:

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


Answer 4:

杰普,你需要一个答案发送回,最简单的是

res.send(200);

里面的回调处理程序writeFile

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

if (err) {
    res.send(500);
} else {
    res.send(200);
}


文章来源: How can I send a success status to browser from nodejs/express?