这里安装是指涉及到第三方中间件的使用时,需要先安装好,然后在使用。cnpm i -g express-generator //安装
express --version //查看版本信息
app.get("/one",(req,res,next)=>{
var flag=true;
if(flag){
next();//如果flag是true就执行下一个和它路径名相同的中间件 next()是查找下面紧邻的兄弟元素
}
else{
res.render("a",{
a:"aaaaaaaa"
});
}
})
app.get("/one",(req,res)=>{ //应用级的中间件
console.log("one middleware")
res.send("我是一个/one的中间件")
})
hello.js
const express = require("express")//引入express框架
var app = express();//实例化 实例过程以及在内部封装好了可以直接用
const datarouter = require("./datarouter");//引入文件
const lxrouter = require("./lxrouter");
app.set("view engine","ejs")
app.set("views","./views")
app.use("/",datarouter);//当为 ”/“的时候引用datarouter里的代码
app.use("/lx",lxrouter);
var ser = app.listen(3000,()=>{
console.log("listen 3000...")
})
datarouter.js
const express = require("express");
const router = express.Router();
const data = require("./data");
const fs = require("fs");
const url = require("url");
router.get("/",(req,res)=>{
res.redirect("/two"); //重定向 可以不根据路由的规定来直接跳转页面
})
router.get("/thr",(req,res)=>{
res.render("b",{
list:data.list
})
})
router.get("/add*",(req,res)=>{
//接受用户传过来的值 用url模块
var obj = url.parse(req.url,true);
var name = obj.query.xm;
data.list.push({//接受用户传来的值
id:++data.count,
name:name
})
fs.writeFileSync("./data.json",JSON.stringify(data));//插入到文件当中去
res.render("b",{//重新渲染模板
list:data.list
})
})
module.exports =router;//把router甩出去
lxrouter.js
const express=require("express")
const router = express.Router();
const data = require("./data");
router.get("/one",(req,res,next)=>{//路由 第一个参数就是我要向其中传递数据的url
var flag=true;
if(flag){
next();
}else{
res.render("a",{
title:"aaaaa"
})//渲染页面
}
})
router.get("/one",(req,res)=>{
console.log("这是二个中间件")
res.send("耶耶耶")
})
module.exports =router;//把router甩出去
ps:hello.js datarouter.js lxrouter.js 需要放在同一目录下