![](/img/trans.png)
[英]RangeError [ERR_HTTP_INVALID_STATUS_CODE]: Invalid status code: 4
[英]RangeError: Invalid status code: 0
我遇到了一個問題,在此應用程序上嘗試 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
應用程序.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
代碼。
當我們在表單保存時出現驗證錯誤並且我們使用 res.redirect 而不是 res.render 方法時也會發生這種情況
例如——
請使用
res.render('users/add', {
countries: countries
});
而不是(這是節點的錯誤陳述)
res.redirect('/users/add', {
countries: countries
});
對我來說,問題是我沒有創建我的上傳目錄,它返回了錯誤。 由於 linux 上的權限問題,您可能應該考慮先創建./upload
目錄。
我遇到了同樣的問題,我通過使用解決了這個問題:
res.send('0')
而不是
res.send(0)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.