Node.js 学习笔记(三)

Express 框架

  • 使用express
//使用express
//1.安装---cnpm install express --save-dev
//2.搭建服务器
const express=require("express");
let app=new express();
//let app=express;
//3.配置服务器的路由
app.get("/",(req,res)=>{
    res.send("express");
});
app.get("/login",(req,res)=>{
    res.send("login");
});
//4.配置服务端的端口
app.listen("8100",()=>{
    console.log("127.0.0.1:8100")
});
  • 静态资源文件托管
//静态资源文件托管 
const express=require("express");
let app=new express();
//let app=express;
//配置静态资源文件托管
//静态资源目录是存放图片、css、JavaScript等文件
app.use(express.static("public"));
//虚拟静态目录
app.use("/static",express.static(public));
app.get("/",(req,res)=>{
    res.send("express");
});
app.get("/login",(req,res)=>{
    res.send("login");
});
app.listen("8100",()=>{
    console.log("127.0.0.1:8100")
});
  • 使用中间件
  1. 应用级中间件
// 应用层中间件
const express=require("express");
let app=new express();
app.use(express.static("public"));
app.use("/static",express.static(public));
app.use((req,res,next)=>{
    console.log("执行路由之前拦截操作!");
    next();
});
app.get("/",(req,res)=>{
    res.send("express");
});
app.get("/login",(req,res)=>{
    res.send("login");
});
app.post("/regest",()=>{
    res.send("regest");
});
app.listen("8100",()=>{
    console.log("127.0.0.1:8100")
});
  1. 路由器级中间件(一)
// 路由器级中间件(一)
const express=require("express");
let app=new express();
app.use(express.static("public"));
app.use("/static",express.static(public));

// app.get("/",(req,res,next)=>{
//     console.log("首页加载");
//     next();
// },(req,res,next)=>{
//     res.send("首页");
// });

app.get("/",(req,res,next)=>{
    console.log("首页加载")
    next();
});
app.get("/",(req,res)=>{
    res.send("首页");
});
app.get("/login",(req,res,next)=>{
    console.log("登录加载")
    next();
});
app.get("/login",(req,res)=>{
    res.send("登录");
});
app.listen("8100",()=>{
    console.log("127.0.0.1:8100")
});
  1. 路由器级中间件(二)
// 路由器级中间件(二)
const express=require("express");
let app=new express();
// express框架中的路由
let router=express.Router();
app.use(express.static("public"));
app.use("/static",express.static(public));

// router.get("/",(req,res,next)=>{
//     console.log("首页加载");
//     next();
// },(req,res,next)=>{
//     res.send("首页");
// });

router.get("/",(req,res,next)=>{
    console.log("首页加载")
    next();
});
router.get("/",(req,res)=>{
    res.send("首页");
});
router.get("/login",(req,res,next)=>{
    console.log("登录加载")
    next();
});
router.get("/login",(req,res)=>{
    res.send("登录");
});
//关联
app.use(router);
app.listen("8100",()=>{
    console.log("127.0.0.1:8100")
});
  1. 第三方中间件—body-parser
//第三方中间件---body-parser
//使用第三方中间件
//1.安装---cnpm install body-parser --save-dev 
//2.引入body-parser
//3.在express框架中配置body-parser
//4.配置body-parser返回的数据格式
//5.post提交---取值在req.body
const bodyParser=require("body-parser");
const express=require("express");
let app=new express();
//配置body-parser
//parser application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({extended:false}));
//配置数据格式
//parser application/json 
app.use(bodyParser.json());

let router=express.Router();
app.use(express.static("public"));
app.use("/static",express.static(public));

router.get("/",(req,res)=>{
    res.send("首页");
});
router.get("/login",(req,res)=>{
    res.send("登录");
});
//关联
app.use(router);
app.listen("8100",()=>{
    console.log("127.0.0.1:8100")
});
  1. 第三方中间件—cookie-parser
//第三方中间件---cookie-parser
//使用第三方中间件
//1.安装---cnpm install cookie-parser --save-dev 
//2.引入cookie-parser
//3.将express框架与cookie-parser进行关联---app.use(cookie());
//4.存取cookie---res
const cookie=require("cookie-parser");
const express=require("express");
let app=new express();

//关联cookie-parser
app.use(cookie("qwer"));

let router=express.Router();
app.use(express.static("public"));
app.use("/static",express.static(public));

router.get("/",(req,res,next)=>{
    //在首页加载之前缓存cookie
    res.cookie("user","wode",{
        maxAge:1000*60,
        signed:true
    });

    console.log("首页加载")
    next();
});
router.get("/",(req,res)=>{
    res.send("首页");
});
router.get("/login",(req,res,next)=>{
    //获取cookie的缓存值
    //未签名req.cookies
    //签名时在关联时设置符号
    //console.log(req.cookies);
    console.log(req.signedCookies);
    console.log("登录加载")
    next();
});
router.get("/login",(req,res)=>{
    res.send("登录");
});
//关联路由
app.use(router);
app.listen("8100",()=>{
    console.log("127.0.0.1:8100")
}); 
  1. 错误处理中间件
//错误中间件
const cookie=require("cookie-parser");
const express=require("express");
let app=new express();

app.use(cookie("qwer"));

let router=express.Router();
app.use(express.static("public"));
app.use("/static",express.static(public));

router.get("/",(req,res,next)=>{
    //在首页加载之前缓存cookie
    res.cookie("user","wode",{
        maxAge:1000*60,
        signed:true
    });

    console.log("首页加载")
    next();
});
router.get("/",(req,res)=>{
    res.send("首页");
});
router.get("/login",(req,res,next)=>{
    //获取cookie的缓存值
    //未签名req.cookies
    //签名时在关联时设置符号
    //console.log(req.cookies);
    console.log(req.signedCookies);
    console.log("登录加载")
    next();
});
router.get("/login",(req,res)=>{
    res.send("登录");
});
//关联路由
app.use(router);
//在匹配路由时,没有可匹配的路由  报出404
app.use((req,res)=>{
    res.status(404).render("404");
})

app.listen("8100",()=>{
    console.log("127.0.0.1:8100")
}); 
  • 动态路由传值、get传值以及set/get方法
const path = require("path");
const fs=require("fs");
const url=require("url");
const ejs=require("ejs");
const bodyparser = require("body-parser")
const cookie = require("cookie-parser")

const express = require("express");

let app = express();

app.use(cookie("a12b3c45d"))

app.use(bodyparser.urlencoded({ extended: false }));

app.use(bodyparser.json());

let router = express.Router();

app.use(express.static("static"));

app.use("/public", express.static(path.join(__dirname, "/static")))
router.get("/", (req, res, next) => {
    //在首页路由中间件写cookie缓存
    res.cookie("user", "maodou", {
        maxAge: 1000 * 60,
        signed: true,
    });
    next();
}, (req, res, next) => {
    //express框架存值
    app.set("user","张三");

    app.locals["age"]=20;
    ejs.renderFile("./view/index.ejs",(err,str)=>{
        if(err)
        {
            next(err);
        }
        res.send(str);
    });
});
router.get("/login", (req, res, next) => {
    console.log(req.signedCookies);
    next();
})
router.get("/login", (req, res, next) => {
    //取值
    console.log(app.get("user"));
    console.log(app.locals);
    ejs.renderFile("./view/login.html",(err,str)=>{
        res.send(str);
    });

//动态路由传值  类似vue里面的动态路由传值  /:id
router.get("/regest/:id/:name",(req,res,next)=>{

    //获取动态路由传递的参数
    let id=req.params.id;
    let name=req.params.name;
    res.send("注册成功!"+id+"/"+name);
});
//路由上的get传值
router.get("/user",(req,res,next)=>{
    let params=url.parse(req.url,true).query;
    let id=params.id;
    let name=params.name;
    res.send("get传值:"+id+"/"+name);
});

//关联
app.use(router);

app.listen(8100, () => {
    console.log("127.0.0.1:8100");
});
  • Ejs模板引擎
//express 框架 使用ejs模板引擎
//1.安装
//2.设置ejs模板引擎
const path = require("path");
const fs=require("fs");
const url=require("url");
const ejs=require("ejs");
const bodyparser = require("body-parser")
const cookie = require("cookie-parser")
const express = require("express");
let app = express();
//设置ejs模板引擎
app.set("view engine","ejs");
//修改ejs后缀名为html
app.engine('html',ejs.renderFile);
app.use(cookie("a12b3c45d"))
app.use(bodyparser.urlencoded({ extended: false }));
app.use(bodyparser.json());
let router = express.Router();
app.use(express.static("static"));

app.use("/public", express.static(path.join(__dirname, "/static")))
router.get("/", (req, res, next) => {
    //在首页路由中间件写cookie缓存
    res.cookie("user", "maodou", {
        maxAge: 1000 * 60,
        signed: true,
    });
    next();
}, (req, res, next) => {
    app.locals["age"]=20;
    ejs.renderFile("./view/index.ejs",(err,str)=>{
        if(err)
        {
            next(err);
        }
        res.send(str);
    });
});
router.get("/login", (req, res, next) => {
    console.log(req.signedCookies);
    next();
})
router.get("/login", (req, res, next) => {
    console.log(app.locals);
    ejs.renderFile("./view/login.html",(err,str)=>{
        res.send(str);
    });

//关联
app.use(router);

app.listen(8100, () => {
    console.log("127.0.0.1:8100");
});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值