Node将路由表示为模块:在哪里放置`require`s?

时间:2016-11-28 12:15:05

标签: node.js express module url-routing

Node Express的Routing guide给出了以下创建路径为模块的示例:

/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)

我想知道为什么他们将birds.js的前两行放在app.js而不是app.js

首先,app调用app的方法。如何在app.js内定义dogs.js?我认为他们(奇怪地)忽略了为了教程而包含必要的代码。

其次,在一个名为birds.js的文件中,我想要第二条路线作为模块,对于狗和鸟类。它看起来与前两行的app.js WRT相同吗? AFAIK会导致两个快递实例。 (如果在len(models) * len(years) * (143360 - 143350) # 3220 中也需要三个,那么还有三个?!)

1 个答案:

答案 0 :(得分:0)

示例未完成。整个应用程序设置被省略(我认为因为无论如何在文档中进一步解释并用// ...替换)。在你的app.js中,你至少需要:

var express = require('express');
var app = express();

bird.js中的前两行与app.js中的两行(缺失)无关。您需要它们来创建路由器。

关于你的上一个问题:是的,你会创建一个与鸟路由器完全相同的路由器。路由器不是一个快速的应用程序/实例,在你的应用程序中有多个它们是完全没问题。