node-express 错误:表示不推荐使用 res.send(status):请改用 res.sendStatus(status)

Posted

技术标签:

【中文标题】node-express 错误:表示不推荐使用 res.send(status):请改用 res.sendStatus(status)【英文标题】:node-express error : express deprecated res.send(status): Use res.sendStatus(status) instead 【发布时间】:2015-08-13 12:40:58 【问题描述】:

我正在尝试通过response.send() 发送一个整数,但我不断收到此错误

表示不推荐使用 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)
);

);

【问题讨论】:

只是为了避免警告,像response.send (max:idTest)这样返回JSON怎么样 关于res.send()、the fine manual 声明:“body 参数可以是 Buffer 对象、字符串、对象或数组。”。因此不直接支持整数,需要先将其转换为其中一种类型。 JSON 技巧奏效了,谢谢@HarisHasan @robertklep 你能写一个答案让 D-W-A 接受吗? :) 【参考方案1】:

你可以试试这个:

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

伙计们是对的 - 它不允许数字。 证明链接:http://expressjs.com/4x/api.html#res.send

【讨论】:

感谢帮助,我的问题是尝试发送非字符串的额外内容【参考方案2】:

这是因为您在 res.send 中发送数值。

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

【讨论】:

【参考方案3】:

(如 cmets 中所述)

The manual states:

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

因此不直接支持整数,需要先将其转换为其中一种类型。例如:

response.send(String(idTest));

【讨论】:

【参考方案4】:

已弃用的 Express 5 不再支持 Signature Like -

res.json(200, 
   result: result
);

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

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

示例 -

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

【讨论】:

【参考方案5】:

只要您不发送字符串或对象/数组数据,就会出现错误。 解决方案将您的数据转换为字符串:

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

【讨论】:

【参考方案6】:

这样使用,

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

【讨论】:

这根本不能解决问题;您实际上只是在响应中发送错误【参考方案7】:

由于res.send(403);,我在 node-express typescript 项目中收到不推荐使用的警告

解决方案 1 -

res.sendStatus(403);

解决方案 2 -

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

【讨论】:

以上是关于node-express 错误:表示不推荐使用 res.send(status):请改用 res.sendStatus(status)的主要内容,如果未能解决你的问题,请参考以下文章

vue-cli 中的图像导致问题。 Node-Express,mysql后端

如何在 Node-Express / Vue Web 应用程序中管理 OAuth?

如何正确关闭 node-express 服务器?

推荐系统之矩阵分解(MF)

Node-express项目--个人简历:多种方法获取用户数据接口编写

如何修复节点服务器错误,npm ERR!代码 ELIFECYCLE npm 错误!错误1?