Express error handler (перенаправить в логи)
Первое.
Как в express 4 сохранять ошибки в логфайл и запретить отдавать в браузер? Буду благодарен за пример. По умолчанию express шлет описание ошибки в браузер, что недопустимо на продакшене. И второе. Есть router http://expressjs.com/4x/api.html#router var app = express(); var router = app.Router([options]);; router.get('/events', funct) Чем это отличается от: var app = express(); app.get('/events', funct) ? Непонимаю разницу. |
Цитата:
Цитата:
app.use((err, req, res, next) => { //Этот миддлвер будет обрабатывать ошибки. }); Цитата:
let app = express(); let adminRouter = express.Router(); adminRouter.get("/articles", (req, res) => { res.render("admin/articles"); }); adminRouter.get("/gallery", (req, res) => { res.render("admin/gallery"); }); app.use("/admin", adminRouter); |
А для логирования есть morgan.
|
Цитата:
В конец, это куда? После каждого app.get() или нужно проследить порядок подключения через require и поставить именно в конец объявления всего приложения? |
Цитата:
let app = express(); app.get("/adimn/articles", (req, res) => { res.render("admin/articles"); }); app.get("/admin/gallery", (req, res) => { res.render("admin/gallery"); }); ? На скорость это как-то влияет или просто для построения архитектурных решений? |
Цитата:
Цитата:
Цитата:
|
Цитата:
init.js global.app = express(); require('get.js'); require('post.js'); get.js app.get('/get/:id', funcHandlerPost); post.js app.post('/get/:id', funcHandlerPost); Куда поставить? app.use((err, req, res, next) => { //Этот миддлвер будет обрабатывать ошибки. }); |
Чтобы подключился после всех остальных миддлеверов:
global.app = express(); require('get.js'); require('post.js') app.use((err, req, res, next) => { //Этот миддлвер будет обрабатывать ошибки. }); app.listen(3000); Почему - потому что запрос идет по цепочке миддлверов как по потокам, и если поставить логгер в начале, до него попросту никогда ничего не дойдет. |
Erolast,
Спасибо, теперь понял. :) |
Только глобал ж в ноде не принято использовать. Почему не так:
let app = express(); app.use(require("./get")); app.use(require("./post")); app.listen(3000); ? Код более явным становится - не надо обшаривать весь проект, чтобы понять, чо там где происходит с приложением. К тому же, сторонние модули подключаются именно таким образом: let morgan = require("morgan"); let app = express(); app.use(morgan()); app.listen(3000); |
Часовой пояс GMT +3, время: 06:42. |