Javascript 快速路由。获取并使用

Javascript 快速路由。获取并使用,javascript,node.js,express,routing,Javascript,Node.js,Express,Routing,我见过类似的问题,但没有完全得到答案。 在我的Express应用程序中,我有:“app.js”、“users.js”和“index.js” “app.js”看起来像这样: var express = require ('express') var index = require('./routes/index.js') var users = require('./routes/users.js') app.get('/users',users) app.get('/index',index

我见过类似的问题,但没有完全得到答案。
在我的Express应用程序中,我有:“app.js”、“users.js”和“index.js”

“app.js”看起来像这样:

var express = require ('express') 
var index = require('./routes/index.js') 
var users = require('./routes/users.js')
app.get('/users',users)
app.get('/index',index)
app.get('/',index)
app.listen etc...
router =express.Router()  
router.use('/admin',admin) //some more modules i wont add here for concision  
router.get('/',function(req,res,next){log some stuff  
next()})  
users.js和index.js是导出express.Router()instace的简单模块。 例如,“users.js”是这样的:

var express = require ('express') 
var index = require('./routes/index.js') 
var users = require('./routes/users.js')
app.get('/users',users)
app.get('/index',index)
app.get('/',index)
app.listen etc...
router =express.Router()  
router.use('/admin',admin) //some more modules i wont add here for concision  
router.get('/',function(req,res,next){log some stuff  
next()})  
现在,如果我启动应用程序并在localhost上发送一些东西:3000/用户将不会调用users.js中的函数。但是如果我换成

app.use('/users',users)  
app.use('/index',index)  
app.use('/',index)  

在app.js内部调用localhost:3000/用户,将调用我上面提到的函数。怎么会这样?

我认为您必须指定整个路径,即使是在您的路由器内。尝试使用
router.get('/users',function(req,res,next){log some stuff next()})
@Neutrosider是的,它可以工作。知道为什么吗?