RangeError:无效状态代码:节点中有0个错误,表示吗? [英] RangeError: Invalid status code: 0 error in node, express?

查看:59
本文介绍了RangeError:无效状态代码:节点中有0个错误,表示吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果我给出这样的错误消息,它将正常工作而不会出现问题

if i give error message like this it working fine without problem

res.status(401).send('not found, please register');

但是当我改成这个我就出错了

but when i change to this one i am getting error

return res.status('EXTINF-10202').json({
                'message': 'not found, please register'
            });

我遇到这样的错误

F:\test\node_modules\mongoose\node_modules\mongodb\lib\utils.js:97
    process.nextTick(function() { throw err; });
                                  ^

RangeError: Invalid status code: 0
    at ServerResponse.writeHead (_http_server.js:192:11)
    at ServerResponse.writeHead (F:\test\node_modules\on-headers\index.js:
55:19)
    at ServerResponse.res.writeHead (F:\test\node_modules\express-session\
index.js:169:17)
    at ServerResponse._implicitHeader (_http_server.js:157:8)
    at ServerResponse.res.write (F:\test\node_modules\compression\index.js
:90:14)
    at ServerResponse.res.end (F:\test\node_modules\compression\index.js:1
11:14)
    at F:\test\node_modules\express-session\index.js:182:13
    at F:\test\node_modules\connect-mongo\lib\connect-mongo.js:365:9
    at handleCallback (F:\test\node_modules\mongoose\node_modules\mongodb\
lib\utils.js:95:12)
    at F:\test\node_modules\mongoose\node_modules\mongodb\lib\collection.j
s:666:5
    at F:\test\node_modules\mongoose\node_modules\mongodb-core\lib\topolog
ies\server.js:795:13
    at Callbacks.emit (F:\test\node_modules\mongoose\node_modules\mongodb-
core\lib\topologies\server.js:94:3)
    at Connection.messageHandler (F:\test\node_modules\mongoose\node_modul
es\mongodb-core\lib\topologies\server.js:235:23)
    at Socket.<anonymous> (F:\test\node_modules\mongoose\node_modules\mong
odb-core\lib\connection\connection.js:259:22)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:188:7)

推荐答案

如果查看res.status的ExpressJS源代码,您会发现该函数需要数字而不是字符串:

If you take a look at the ExpressJS source for res.status you will see that the function expects a Number, not a String:

/**
 * Set status `code`.
 *
 * @param {Number} code
 * @return {ServerResponse}
 * @public
 */

res.status = function status(code) {
  this.statusCode = code;
  return this;
};

https://github.com/expressjs /express/blob/9722202df964bfbfc0f579e4baeb5a4e1b43b344/lib/response.js#L57-L68

这篇关于RangeError:无效状态代码:节点中有0个错误,表示吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆