RangeError: invalid status code: 0

I got a problem when I get the following error code when trying to POST request in this application (bearing in mind that I am a beginner node.js / js programmer):

Mistake:

[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; 

Below is my edit.js route where I believe the problem is occurring:

 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; 
+11
javascript mongodb webstorm express
source share
2 answers

I had a similar error message just now and managed to solve the problem by changing:

 res.status(statusCode); 

in

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

or simply:

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

those. make sure you are not trying to set an invalid HTTP status code somewhere.

This is probably a problem, but it looks like you accidentally duplicated the app.js code instead of pasting the edit.js code into the question.

+19
source share

This case also happens when we have a validation error while saving the form, and we use res.redirect instead of the res.render method

eg -

Use

 res.render('users/add', { countries: countries }); 

instead (invalid operator for node)

 res.redirect('/users/add', { countries: countries }); 
+3
source share

All Articles