node.js - How do I handle errors in a function called from a route handler in Express, NodeJS? -


this may extremely stupid, haven't found because don't understand how should search this.

i have route handler may call different functions depending on request parameters, , know what's best way deal errors inside functions in order pass errors error handling middleware. consider this:

router.get('/error/:error_id', (req, res, next) => {     my_function(); }  function my_function(){   // async, readfile   var f = fs.readfile("blablabla", function (err, data) {       // want deal error   }); } 

if error occurs during fs.readfile, how pass error next forward error middleware? solution pass next param function function my_function(next){...}?

in case function didn't call async i/o operation, simple try/catch in route handler ok (i suppose), this:

router.get('/error/:error_id', (req, res, next) => {     try{       my_function();     } catch(e){       next(e);     }; }  function my_function(){   // stuff   var f = fs.readfilesync("blablabla"); // possibly throws error } 

hope make sense.

you totally correct should pass next callback my_function since fs.readfile asynchronous.

router.get('/error/:error_id', (req, res, next) => {   my_function(next); }  function my_function(next) {   fs.readfile("blablabla", function (err, data) {     if (err) {       next(err);     } else {       // process data       // don't forget call `next` send respond client     }   }); } 

by way, cannot do

var f = fs.readfile(...) 

because fs.readfile asynchronous. data should handled within callback.


Comments

Popular posts from this blog

Command prompt result in label. Python 2.7 -

javascript - How do I use URL parameters to change link href on page? -

amazon web services - AWS Route53 Trying To Get Site To Resolve To www -