node中路由设计
初始化
模板的处理
路由的设计
请求方法
请求路径
get参数
post参数
备注
GET
/students
渲染首页
GET
/students/new
渲染添加学生页面
POST
/students/new
name、age、gender、hobbies
处理添加页面
GET
/students/edit
id
渲染编辑页面
POST
/student/edit
id、name 、age、gender、hobbies
处理编辑页面
GET
/students/delet
id
处理删除
使用路由文件进行映射
借用model.exports函数将路由封装成函数,然后在主文件中进行调用
//在路由文件中 module.exports=function(app){ app.get("/",function(req,rep){ //request root url /*rep.send("hello express")*/ //response the client /*rep.send("中文 is ok!")*/ //response the client with chinese fs.readFile("./data/test.json",function(err,data){ if(err){ rep.status(500).send("server error") console.log("读取文件失败"); return } rep.render("index.html",{ category:JSON.parse(data.toString()).category, tiem:JSON.parse(data.toString()).time, individual:JSON.parse(data.toString()).individual }) }); })} //主文件中进行加载 var route=require("./route.js") //调用路由函数 route(app);
express中专门用于路由映射的Route方法
创建express路由容器
//创建路由容器 var express=require("express") var fs=require("fs") var router=express.Router() //填充路由容器route内容 router.get("/",function(req,rep){ //request root url /*rep.send("hello express")*/ //response the client /*rep.send("中文 is ok!")*/ //response the client with chinese fs.readFile("./data/test.json",function(err,data){ if(err){ rep.status(500).send("server error") console.log("读取文件失败"); return } rep.render("index.html",{ category:JSON.parse(data.toString()).category, tiem:JSON.parse(data.toString()).time, individual:JSON.parse(data.toString()).individual }) }); }) //导出route容器 modeul.exports=router
挂载路由容器
//在主文件总挂载route容器 var router=require("./route.js") app.use(router)
当这些完成之后app.js内的内容就很清晰了,各司其职
创建服务
服务相关的配置
加载模板引擎 express-art-template
解析post表单数据 body-parser
设置静态资源目录
挂载路由
监听端口
var fs=require("fs")
var express=require("express")
var router=require("./route.js")
var bodyParser=require("body-parser")
var app=express() //init server
app.engine('html', require('express-art-template')) //设置模板文件后缀
app.set('views','/var/www/html/node/express_demo/public/');//设置模板文件目录
//解析post请求的配置
app.use(bodyParser.urlencoded({extended:false}))
app.use(bodyParser.json())
// post数据在req的body属性中
app.use(router) //挂载路由文件
// open static resource directory
app.use('/public/',express.static('./public/'))
app.listen(8080,function(){
console.log("The server is running in 8080 port")
})
多路由挂载
在有很多种页面时,针对不同的页面设计不同的路由文件,将所有的路由文件放在同一个文件夹下面方便管理与维护
./configure/
|-- app.js
|-- route.js
|-- router
| |-- studenter_router.js
| `-- teacher_router.js
|-- students.js
`-- teacher.js
#在router文件夹中配置了两种类型的路由文件,然后在app.js中进行引用即可
## app.js
var studenter_router=require("./router/studenter_router.js")//路由文件
var teacher_router=require("./router/teacher_router.js")//路由文件
Last updated
Was this helpful?