@rspk should be resolved 😉
NodeBB's module User.getUserData can produce null objects. Plugin should filter them. Issue is related to user deletion.
faviconGitHub (github.com)
Hello !
I'm writing a plugin where I do this :
app.get('/uploads/myfiles/:file(*?)', function (req, res) {
// Things TODO with req.params.file for permissions (after work on it)...
var longfilename = path.resolve('public' + req.url);
if (fs.existsSync(longfilename)) {
res.status(200);
res.sendFile(longfilename);
} else {
console.log('Fichier non trouvé');
res.status(404);
res.render('404', {path: req.path});
}
});
When a file is not found, I return a 404 error page with the last "else". It works in a ugly way because of no 404.tpl file... How can I call a standard nodebb error page for this 404 error ? What is the good res.render command (or else) ?
@alfazaz said in Proper way to render error page (404...):
app.get('/uploads/myfiles/:file(*?)', function (req, res) {
// Things TODO with req.params.file for permissions (after work on it)...
var longfilename = path.resolve('public' + req.url);
if (fs.existsSync(longfilename)) {
res.status(200);
res.sendFile(longfilename);
} else {
console.log('Fichier non trouvé');
res.status(404);
res.render('404', {path: req.path});
}
});
The proper way is to call next
and let the core 404 handler do it's magic.
app.get('/uploads/myfiles/:file(*?)', function (req, res, next) {
// Things TODO with req.params.file for permissions (after work on it)...
var longfilename = path.resolve('public' + req.url);
if (fs.existsSync(longfilename)) {
res.status(200);
res.sendFile(longfilename);
} else {
next();
}
});