Итак, я видел TJ's guide to creating modular Express-apps, после чего он был полезен, но хотел бы узнать больше о том, как он работает, однако поиск не дает мне ответов.Как работает приложение для работы в Express
Вкратце мне интересно: При установке приложений в Express, какие части приложений являются общими, а какие нет?
Некоторые примеры прояснить мой вопрос:
app.js:
app.use(express.bodyParser());
app.use(loginApi); //loginApi is an express app
app.listen(3000);
Этот пример работает. Но если я разместил app.use(loginApi)
до app.use(express.bodyParser());
, синтаксический анализатор тела не будет доступен в субаппале loginApi. Почему это?
Другой пример:
submodule.js
var app = module.exports = require('express')();
app.all('*', function(req, res, next){
console.log('nifty middleware');
next();
});
app.js
app.get('/funtimes', fn);
app.use(submodule);
app.listen(3000);
Сейчас в этом примере, если я правильно понимаю, то /funtimes
маршрут не будет зависеть от промежуточное ПО подмодуля для всех маршрутов. Но как насчет остальных маршрутов app.js? Будут ли они затронуты? И что, если я добавлю еще один модуль, это будет затронуто?
Кстати, вы даже не нужен массив, вы можете просто передать несколько функций обработчиков 'приложениям. get ('whatever', fn1, fn2, fn3) ' – Plato
Это не совсем правильно. Вы можете использовать app.use() для «монтирования» subapp в относительном каталоге. Например, 'app.use ('/ products', productService)' будет использовать промежуточное программное обеспечение 'productService'/приложение для всех путей, сопоставляющих '/ products', которые не пойманы более ранним маршрутом. –