users.js
var express = require('express');
var router = express.Router();
router.get('/users', function(req, res, next) {
res.send('Test')
});
module.exports = router;
index.js
var express = require('express');
var router = express.Router();
var users = require('./users')
...
app.js
...
var index = require('./routes/index');
app.use('/', index);
...
这里我只列出部分代码,但无论我是在index.js中引用user.js还是在app.js中引用,处理/users这个网络请求都是404,所以我想问一下是不是因为一个项目中只能建立一个路由啊,然后另一个问题就是app.use()这个函数的参数分别代表了什么,谢谢各位大神
在入口文件裡面,例如app.js,通常都是在這個裡面註冊中間件等等,導出app,然後在你需要用到的路由文件裡面直接引入這個app,比如app.get("/hello" , function() {})
use函數有兩個參數,第一個參數一般是匹配一個路由的,第二個函數是註冊中間件的,如果沒有第一個參數,那麼第二個函數將會應用到每個請求裡面。
看問題的意思,在index.js中引用了users.js,我猜是想有一個統一的路由管理器,並不想在app.js裡面註冊所有的路由,由於index.js中沒有完整的程式碼,所以順著這個思路,index.js內容是這樣的:
var express = require('express');
var users=require('./users');
var app=express();
app. use('/user',users);
module.exports=app;
然後在同一入口app.js裡面註冊這個index.js就行了,那樣就不用再去註冊users這個路由了