1. 程式人生 > >nodejs之express(二)路由中介軟體router實現路由

nodejs之express(二)路由中介軟體router實現路由

 路由級中介軟體和應用級中介軟體一樣,只是它繫結的物件為 express.Router()。
var router = express.Router();

app.use(path,callback)中的callback既可以是router物件又可以是函式;

app.get(path,callback)中的callback只能是函式;

路由規則是app.use(path,router)定義的,router代表一個由express.Router()建立的物件,在路由物件中可定義多個路由規則;當一個路徑有多個匹配規則時,使用app.use,否則使用相應的app.method(get、post);

app.use內部其實呼叫了router.use

,




******************例項***********************

入口routeapp.js


var express=require('express');
//引入模組
var admin=require('./routes/admin.js');//路由,後臺
var index=require('./routes/index.js');//路由,首頁
var   app=express();

app.use('/',index);//掛在路由,如果沒有路由,或者只有/ ,對映到index路由;
app.use('/admin',admin);//掛在路由,/admin對映到admin


var server =app.listen(8081,'192.168.99.149',function(req,res,next){
  var host = server.address().address
  var port = server.address().port
  console.log(__dirname);//這裡的目錄就是/Users/wofu/Desktop/node,其中node資料夾我是直接放在了桌面
  console.log("應用例項,訪問地址為 http://%s:%s", host, port)
});

****admin.js


/**
******後臺
*/
var express=require('express');
var router=express.Router();//
var  login=require('./admin/login.js');//路由,登陸
var  product=require('./admin/product.js');//路由,商品
var  user=require('./admin/user.js');//路由,使用者

router.use('/login',login);//   /login 對映到login這個路由
router.use('/product',product);//   /product  對映到product這個路由
router.use('/user',user);
//如果login  product user  不存在,則會走下面這個
router.use("/",function(req,res){
  res.send("admin/");
})

module.exports =router;//暴露模組

******index.js


// 首頁,預設頁
var express=require('express');
var router=express.Router();

router.get('/',function(req,res){
  res.send('index');
})

router.get('/product',function(req,res){
  res.send('product頁面');
})

module.exports = router;
*****login.js


var express=require('express');

var router=express.Router();

router.get('/',function(req,res,next){
  res.send("登陸頁面");
})
module.exports=router;

******product.js


var express=require('express');

var router=express.Router();

router.get('/',function(req,res,next){
  res.send("商品頁面");
})
module.exports=router;