node.js - express 4.x 如何在不同js文件中處理router請求
問題描述
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這個網(wǎng)絡(luò)請求都是404,所以我想問一下是不是因為一個項目中只能建立一個路由啊,然后另一個問題就是app.use()這個函數(shù)的參數(shù)分別代表了什么,謝謝各位大神
問題解答
回答1:
在入口文件里面,比如app.js,一般都是在這個里面注冊中間件等等,導(dǎo)出app,然后在你需要用到的路由文件里面直接引入這個app,比如app.get('/hello', function() {})
use函數(shù)有兩個參數(shù),第一個參數(shù)一般是匹配一個路由的,第二個函數(shù)是注冊中間件的,如果沒有第一個參數(shù),那么第二個函數(shù)將會應(yīng)用到每一次請求里面。
回答2:看問題的意思,在index.js中引用了users.js,我猜是想有一個統(tǒng)一的路由管理器,并不想在app.js里面注冊所有的路由,由于index.js中沒有完整的代碼,所以順著這個思路,index.js內(nèi)容是這樣的:var express = require(’express’);var users=require(’./users’);var app=express();app.use(’/user’,users);module.exports=app;然后在同一入口app.js里面注冊這個index.js就行了,那樣就不用再去注冊users這個路由了
相關(guān)文章:
1. 測試自動化html元素選擇器元素ID或DataAttribute [關(guān)閉]2. html5 - datatables 加載不出來數(shù)據(jù)。3. javascript - QQ第三方登錄的問題4. html5和Flash對抗是什么情況?5. 利用IPMI遠(yuǎn)程安裝centos報錯!6. node.js - mongodb查找子對象的名稱為某個值的對象的方法7. 運行python程序時出現(xiàn)“應(yīng)用程序發(fā)生異常”的內(nèi)存錯誤?8. 在mac下出現(xiàn)了兩個docker環(huán)境9. 正在使用electron和node.js做桌面應(yīng)用,需要實時監(jiān)聽是否有網(wǎng)絡(luò)連接,node或者electron是否可以做到10. spring-mvc - spring-session-redis HttpSessionListener失效

網(wǎng)公網(wǎng)安備