One way to handle async errors in express is to wrap the async function in a handler so you can dry up the code and not have to write a try catch every time. Place it in a separate file, then import it into your routes. module.exports = func => { return (req, res, next) => { func(req, res, next).catch(next); } } app.get("/example", asyncHandler(async (req, res) => {res.send("Example")}))
@@JamesQQuick thats true, I forgot to add that you can get specific logging info in express by adding in this with the above async handling example. app.use((err, req, res, next) => { console.log(err); next(); }); Depending on what I need I will render a error page while logging the specific issue app.use((err, req, res, next) => { const { statusCode = 500, message = "Someting Went Wrong, Try Again!" } = err; res.status(statusCode).render("error", { message, statusCode }); console.log(err) next(); }); Good point though, I forgot about the rest of this I usually pair with the aforementioned async handler.
Hello James, I saw your video on code academy about vscode. You said that you use mac version of vs code. I have searched alot about this topic but can't seem to find an answer, do you know anyway of how I can use vscode on mac with Windows functionality?
Can you please help me out with setIntervals. when I use interval to run time. when I shift to new tab and leave the tab in which timer is running inactive for a long time. the timer does not move. is there a way to solve this problem
Thanks for this James :)
I have now also tested highlight. Highlight is really awesome. Great tool
It's really pretty incredible!
One way to handle async errors in express is to wrap the async function in a handler so you can dry up the code and not have to write a try catch every time. Place it in a separate file, then import it into your routes.
module.exports = func => {
return (req, res, next) => {
func(req, res, next).catch(next);
}
}
app.get("/example", asyncHandler(async (req, res) => {res.send("Example")}))
Yep, that's a good option. The downside is you lack specific logging info if you have one generic handler.
@@JamesQQuick thats true, I forgot to add that you can get specific logging info in express by adding in this with the above async handling example.
app.use((err, req, res, next) => {
console.log(err);
next();
});
Depending on what I need I will render a error page while logging the specific issue
app.use((err, req, res, next) => {
const { statusCode = 500, message = "Someting Went Wrong, Try Again!" } = err;
res.status(statusCode).render("error", { message, statusCode });
console.log(err)
next();
});
Good point though, I forgot about the rest of this I usually pair with the aforementioned async handler.
Love it James, thank you so much. Can you make a video on how to handle your errors in a NextJs project?
So glad to hear it! Potentially! For the most part it would be the same idea of making sure to use try/catch and handle that way!
Thank you very useful topic!!!
Glad you think so!
thank you for this video, very informative
So glad :)
Hello James, I saw your video on code academy about vscode. You said that you use mac version of vs code. I have searched alot about this topic but can't seem to find an answer, do you know anyway of how I can use vscode on mac with Windows functionality?
What specific windows functionality are you looking for?
@@JamesQQuick most of my friends use Windows so I need a Windows system for projects, any Window would be great, I have a mac m1 air...
Can you please help me out with setIntervals. when I use interval to run time. when I shift to new tab and leave the tab in which timer is running inactive for a long time. the timer does not move. is there a way to solve this problem
nice man keep em coming jajaja
Me that just duelled the analytics beast to tag my errors
Nice video, very informative! I haven't looked into error handling too deep, this a good starting point. Thanks
So glad this helped!