node 路由模块化 express路由模块化

路由模块化

入口模块 app.js
/**
 * app.js 入口模块
 * 启动服务
 * 做一些服务相关配置
 *      模版引擎
 *      body-parser
 *      提供静态资源服务
 *  挂载路由
 *  监听端口启动服务
 */
var express = require("express")
var bodyParser = require("body-parser")
var app = express()
var router = require("./router") //导入路由模块

app.engine("html",require("express-art-template"))
app.use("/public/",express.static("./public/"))

app.use(bodyParser.urlencoded({extended:false}))
app.use(bodyParser.json())

router(app) //调用路由模块

app.listen(3000,function(){
    console.log("http://127.0.0.1:3000 启动")
})
路由模块router.js

模块功能要单一

/**
 * router.js 路由模块
 * 处理路由
 * 
 * 模块功能要单一
 */
var fs = require("fs")

module.exports = function(app){
    app.get("/",function(req,res){
        fs.readFile("./db.json",'utf8',function(err,data){
            if(err){
                return res.status(500).send("server error")
            }
            res.render("index.html",{
                students:JSON.parse(data).students
            })
        })
        
    })
}

express路由模块化

入口模块 app.js
/**
 * app.js 入口模块
 * 启动服务
 * 做一些服务相关配置
 *      模版引擎
 *      body-parser
 *      提供静态资源服务
 *  挂载路由
 *  监听端口启动服务
 */
var express = require("express")
var moment = require("moment")
var bodyParser = require("body-parser")
var app = express()
var router = require("./router")

app.engine("html",require("express-art-template"))
app.use("/public/",express.static("./public/"))

app.use(bodyParser.urlencoded({extended:false}))
app.use(bodyParser.json())


// 4 把路由容器挂载到app服务中
app.use(router)


app.listen(3000,function(){
    console.log("http://127.0.0.1:3000 启动")
})
路由模块router.js
/**
 * router.js 路由模块
 * 处理路由
 * 
 * 模块功能要单一
 */
var fs = require("fs")
var express = require("express")

// 1 创建一个路由容器
var router = express.Router();

// 2 把路由都挂载到路由容器

router.get("/",function(req,res){
    fs.readFile("./db.json",'utf8',function(err,data){
        if(err){
            return res.status(500).send("server error")
        }
        res.render("index.html",{
            students:JSON.parse(data).students
        })
    })
    
})

// 3 把router 导出
module.exports = router

构建模版化路由

app.js

const express = require('express')
const app = express()
const router = require('./router') //router/index.js

app.use(router)

app.listen(3000,()=>console.log("服务器启动"))

router/index.js

const router = require('express').Router()
const home = require('./home')
const user = require('./user')

// http://localhost:3000/
router.get('/',(req, res)=>{
	res.send("默认地址")
}) 
// 匹配 /home开头的路由 http://localhost:3000/home/xxx
router.use('/home',home)
// 匹配 /user开头的路由
router.use('/user',user)

// 404
router.use((req, res)=>{
	res.send(":) 404 ")
})
module.exports = router 

router/home.js

const router = require('express').Router()

// http://localhost:3000/home/add
router.get('/add', (req, res)=>{
	res.send('/home/add')
})

module.exports = router 

router/user.js

const router = require('express').Router()

// // http://localhost:3000/user/add
router.get('/add', (req, res)=>{
	res.send('/user/add')
})

module.exports = router 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值