node-express error: express deprecated res.send(status):使用re



我试图通过response.send()发送一个整数,但我一直得到这个错误

express deprecated res.send(status):使用res.sendStatus(status)代替

我没有发送状态,我的代码是

app.get('/runSyncTest' , function(request, response){  
var nodes = request.query.nodes;
var edges = request.query.edges;
if (edges == "" ){
    edges = []
}
userStory.userStory(nodes,edges);
connection.query('SELECT MAX(id) as id FROM report ', function(err,results, fields) {
                idTest = results[0].id
                response.send (idTest)
});
});

你可以试试:

res.status(200).send((results[0].id).toString());

男人是对的-它不允许数字。Prooflink: http://expressjs.com/4x/api.html res.send

这是因为您在res.send.

中发送数值。

你可以发送一个json对象或将其转换为字符串

(在评论中已经提到)

手册说明:

body形参可以是Buffer对象、String、object或Array。

所以不直接支持整型,需要先转换为其中一种类型。例如:

response.send(String(idTest));

已弃用,Express 5不再支持类似 -

res.json(200, {
   result: result
});

请使用下面的方法,这意味着您只需要更改发送响应的格式。

res.status(statusCode).json(result);

-

res.status(200).json({'success' : true, 'result': result})

只要你不发送字符串或对象/数组数据你得到一个错误。解决方案将数据转换为字符串:

app.get('/runSyncTest', function(req, res) {
    var number = 5000;
    res.send((number).toString()); //Number is converted with toString()
});

像这样使用,

res.status(404).send('Page Not found');

由于res.send(403);,我在node-express typescript项目中得到一个过时的警告

方案1 -

res.sendStatus(403);

解决方案2 -

res.status(403).json(
        {
            'success': false,
            'result': 'forbidden'
        }
    )

如果您的代码中有:

app.use(bodyParser.json());

,那么你应该总是返回一个'JSON'响应,例如:

get请求的错误答案是:

router.get("/", async (req, res) => {
    const result = 3;
    res.send(result);
});

正确答案应该是:

router.get("/", async (req, res) => {
    const result = 3;
    res.send({ result });
});

将其转换为字符串效果很好。

response.send(idTest.toString()

相关内容

最新更新