Узел Экспресс-х Routing guide приводит следующий пример для создания маршрутов в виде модулей:Узлы экспресс-маршрутов как модули: куда поставить `require`s?
/birds.js:
var express = require('express')
var router = express.Router()
// middleware that is specific to this router
router.use(function timeLog (req, res, next) {
console.log('Time: ', Date.now())
next()
})
// define the home page route
router.get('/', function (req, res) {
res.send('Birds home page')
})
// define the about route
router.get('/about', function (req, res) {
res.send('About birds')
})
module.exports = router
/app.js:
var birds = require('./birds')
// ...
app.use('/birds', birds)
Я хочу знать, почему они поставили fi первые две строки birds.js
там, а не в app.js
.
Во-первых, app.js
называет метод app
. Как app
предполагается определить в пределах app.js
? Я полагаю, что они (как ни странно) пренебрегают включением этого необходимого кода для учебника.
Во-вторых, скажите, что мне нужен второй маршрут в качестве модуля, как для собак, так и для птиц, в файле под названием dogs.js
. Может ли он выглядеть идентично birds.js
WRT первые две строки? AFAIK, что приведет к двум экземплярам экспресс. (Или три, если это необходимо в app.js
?)
Я согласен, что это очень неясно. В '/ birds.js' он должен быть« var app = express(); «где-то ... Кроме того, я полагаю, что до тех пор, пока вы определяете ** сразу ** ваше экспресс-приложение, это не имеет значения где вы его определяете (приложение или модуль). – Ksyqo
@Valberthe thanks - так было бы * ok * определить экспресс-приложение * больше *, чем однажды? – Jodes
Нет. Вы всегда должны вызывать один экземпляр экземпляра. – Ksyqo