【问题标题】:node-express error : express deprecated res.send(status): Use res.sendStatus(status) insteadnode-express 错误:表示不推荐使用 res.send(status):请改用 res.sendStatus(status)
【发布时间】: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 接受吗? :)

标签: node.js express response


【解决方案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'
                  }
              )
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2019-12-15
            • 2014-11-29
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-05-17
            • 1970-01-01
            • 2012-08-03
            相关资源
            最近更新 更多