Reputation: 602
My question is how can I add error handling for this very simple Node.js/Express server? It can just console.log errors. Should it be a part of app.post
?
const app = require('express')();
const bodyParser = require('body-parser');
const cors = require('cors');
const secretNumber = Math.floor(Math.random() * 10000) + 1;
app.use(cors());
app.use(bodyParser.json());
app.post('/number', (req, res) => {
const guess = req.body.isNumber;
if (guess < secretNumber) {
res.json({
resultText: 'The number that you are searching for is higher than yor guess.',
resultCode: 'higher',
yourGuess: guess
});
} else if (guess > secretNumber) {
res.json({
resultText: 'The number that you are searching for is lower than yor guess.',
resultCode: 'lower',
yourGuess: guess
});
} else {
res.json({
resultText: 'Congratulations! You have just found the secret number!',
resultCode: 'success',
yourGuess: guess
});
}
});
app.listen(3001, () => console.log('Listening on port 3001.'));
I found code like this:
function errorHandler (err, req, res, next) {
res.status(500)
res.render('error', { error: err })
}
But I don't know where exactly should I put it.
Upvotes: 0
Views: 25
Reputation: 5363
In your routes, you forward the error to the next
function and your last middleware should handle it.
app.post('/number', (req, res, next) => {
const guess = req.body.isNumber;
if (guess < secretNumber) {
res.json({
resultText: 'The number that you are searching for is higher than yor guess.',
resultCode: 'higher',
yourGuess: guess
});
} else if (guess > secretNumber) {
// Error here for example!!
next(new Error('My error msg :)'))
} else {
res.json({
resultText: 'Congratulations! You have just found the secret number!',
resultCode: 'success',
yourGuess: guess
});
}
});
// Error handler
app.use(function(err, req, res, next) {
res.status(500)
res.json({ error: err.message })
});
app.listen(3001, () => console.log('Listening on port 3001.'));
Upvotes: 1