当前位置: 首页 > 面试题库 >

RangeError:无效的状态码:0

解河
2023-03-14
问题内容

我遇到一个问题,在此应用程序上尝试POST请求时收到以下错误代码(请记住我是初学者node.js / js程序员):

错误:

[20:22:28] [nodemon] starting `node app.js`
Running server on 3000
Mon, 27 Jun 2016 19:22:31 GMT express deprecated res.send(status, body): Use res.status(status).send(body) instead at routes\edit.js:35:25
c:\Users\Matt\WebstormProjects\ghs_restart\node_modules\mongodb\lib\utils.js:98
    process.nextTick(function() { throw err; });
                                  ^

RangeError: Invalid status code: 0
    at ServerResponse.writeHead (_http_server.js:192:11)
    at ServerResponse._implicitHeader (_http_server.js:157:8)
    at ServerResponse.OutgoingMessage.end (_http_outgoing.js:573:10)
    at ServerResponse.send (c:\Users\Matt\WebstormProjects\ghs_restart\node_modules\express\lib\response.js:204:10)
    at ServerResponse.json (c:\Users\Matt\WebstormProjects\ghs_restart\node_modules\express\lib\response.js:249:15)
    at ServerResponse.send (c:\Users\Matt\WebstormProjects\ghs_restart\node_modules\express\lib\response.js:151:21)
    at c:\Users\Matt\WebstormProjects\ghs_restart\routes\edit.js:35:25
    at c:\Users\Matt\WebstormProjects\ghs_restart\node_modules\mongodb\lib\collection.js:416:18
    at handleCallback (c:\Users\Matt\WebstormProjects\ghs_restart\node_modules\mongodb\lib\utils.js:96:12)
    at c:\Users\Matt\WebstormProjects\ghs_restart\node_modules\mongodb\lib\collection.js:705:5

app.js:

var express = require('express');

var router = express.Router();

var app = express();

var bodyParser = require('body-parser');
app.use( bodyParser.json() );       // to support JSON-encoded bodies
app.use(bodyParser.urlencoded({     // to support URL-encoded bodies
    extended: true
}));

var path = require('path');

var port = process.env.PORT || 3000;

var index = require('./routes/index');
var edit = require('./routes/edit');

app.use('/', index);
app.use('/edit', edit);

app.use(express.static(path.join(__dirname, 'public')));

app.set('view engine', 'jade');

app.set('views', 'views');

app.listen(port, function (err) {
    console.log("Running server on", port);
});

module.exports = index;

以下是我的edit.js路由,我认为是发生问题的地方:

var express = require('express');

var router = express.Router();

var app = express();

var bodyParser = require('body-parser');
app.use( bodyParser.json() );       // to support JSON-encoded bodies
app.use(bodyParser.urlencoded({     // to support URL-encoded bodies
    extended: true
}));

var path = require('path');

var port = process.env.PORT || 3000;

var index = require('./routes/index');
var edit = require('./routes/edit');

app.use('/', index);
app.use('/edit', edit);

app.use(express.static(path.join(__dirname, 'public')));

app.set('view engine', 'jade');

app.set('views', 'views');

app.listen(port, function (err) {
    console.log("Running server on", port);
});

module.exports = index;

问题答案:

我刚才有一个类似的错误消息,并设法通过更改解决了该问题:

res.status(statusCode);

至:

if (statusCode >= 100 && statusCode < 600)
  res.status(statusCode);
else
  res.status(500);

要不就:

res.status(statusCode >= 100 && statusCode < 600 ? err.code : 500);

也就是说,请确保您未尝试在某处设置无效的HTTP状态代码。

这可能是问题所在,但看起来您不小心复制了app.js代码,而不是将edit.js代码粘贴到问题中。



 类似资料:
  • 问题内容: 这是我的代码: 这是我运行文件($ node test.js)时的输出:我在ubuntu机器上尝试了此操作,它运行良好。这就是我在Mac上获得的。有人可以解释一下为什么会这样。任何帮助,将不胜感激。 问题答案: Http响应状态应为整数。它不能是字符串,对象,数组等,并且应从100开始。 从您的代码中,我看到您尝试做 检查回复变量。从redis incr响应中,我认为它是字符串“ OK

  • 我试图将spring securtiy saml集成作为一个SP与adfs系统实现,我的头撞了好几天,在成功验证后,当SAMLResponnse从adfs发回时,会发生这种异常,并引发以下异常。这是调试日志: 我一直在讨论一些问题,所以: 组织。opensaml。常见的SAMLException:Response的状态代码urn:oasis:names:tc:SAML:2.0:status:Res

  • 我为这个错误而发疯。。尝试了所有的解决方案,但没有任何效果。我正在显示材质ui日期选择器日历。直到今天,它一直工作得很好。我不知道发生了什么,我没有改变任何代码,甚至是我写的。 RangeError:无效的时间值 代码如下: “新日期()”正在返回 2019年8月16日星期五23:56:25 GMT 0300 有什么建议吗?

  • 我的日期选择器在尝试将从API获取的选定日期值设置为字符串值时抛出。 我的API日期字符串是 在反应2.0版本后,datepicker将不支持date作为字符串,它表示使用date-fns parseiso... 添加parseISO后,我仍然得到错误

  • 当用户单击“登录”时,会重定向到KeyClope登录页面 [Server:node-00]13:40:00709警告[org.keydape.adapters.OAuthRequestAuthenticator](默认任务-30)状态参数无效 我的申请是: 应用程序URL为https://localhost:8443/app 当我使用超文本传输协议时,它可以工作。但是当我使用https时,错误就来

  • 使用Alamofire 4/Swift 3,您如何区分由于以下原因而失败的请求: 网络连接(主机关闭,无法连接到主机)vs 代码: 我们希望以不同的方式处理每个案件。在后一种情况下,我们要询问回答。(在前一种情况下,我们不知道,因为没有回应)。