Node.js共享和next()中间件

Express

概念:官方给出的概念:Express 是基于 Node.js 平台,快速、开放、极简的 Web 开发框架。
通俗的理解:Express 的作用和 Node.js 内置的 http 模块类似,是专门用来创建 Web 服务器的。
Express 的本质:就是一个 npm 上的第三方包,提供了快速创建 、Web 服务器的便捷方法。

实例代码:
建一个day01.js文件
<script>
const express = require("express");
const cors = require('cors');
const app = express();
app.use(cors());
app.use("static",express.static(path.join(__dirname,"xjitem-moment")))
app.get("url",(req,res)=>{})
app.get("/",(req,res)=>{
    res.send("get请求访问首页接口成功")
    console.log(req.query);
    let data = req.query;
    if(data.userName=="admain"&&data.pass==1234){

    }
}) 

app.get("/index/:abc",(req,res)=>{
    console.log(res.params);
    res.send("get请求访问/index接口成功")
})
app.get("/index",(req,res)=>{
    res.send("get请求访问/index接口成功")
})
// app.post("url",(req,res)=>{})
app.post("/index",(req,res)=>{
    res.send("post请求访问/index接口成功")
})
app.listen(81,()=>{
    console.log("express服务启动成功");
})
</script>
同目录再建一个day01.html文件
<body>
    <!-- 请输入账号:<input type="text" class="zh">;
    请输入密码:<input type="text" class="mm">;
    <button class="btn">登录</button> -->
</body>

<script>
 js使用ajax调用get接口/index
    let http = new XMLHttpRequest();
    let base = "http://127.0.0.1:81/index"
    "http://127.0.0.1:81/index"
    http.open("get",base);
    http.send();
    http.onreadystatechange=function(){
        console.log(http.responseText);
    }
       ---------------------
    http.open("post",base);
    http.send();
    http.onreadystatechange=function(){
        console.log(http.responseText);
    }
    // -------------------
    let base = "http://127.0.0.1:81/index"
    $.get(base,(user)=>{
        console.log(user);
    })
    $.post(base,(user)=>{
        console.log(user);
    })
    $(".btn").click(function(){
        let user = $(".zh").val();
        let pass = $(".mm").val();
        if(!user&&!pass){
            return;
            console.log("请输入好吗!");
        }
    })
    $.ajax({
        type:"get",
        url:`${base}/index`,
        data:{},
        success:(req)=>{
            console.log(req);
        }
    })
    $.ajax({
        type:"get",
        url:`${base}/index/99`,
        data:{},
        success:(req)=>{
            console.log(req);
        }
    })
    //用多种方法
</script>

解决跨域问题使用cors
1.npm i cors
2.导入require
3.使用,在app创建服务后使用

栗子 一个

1.请使用express创建服务,端口号为81,需解决跨域问题,需托管静态文件名称为es6,创建一个get接口,接口名称为/login,接口中需要验证账号为admin密码123456,验证成功返回登录成功页面路径http://127.0.0:81/es6/day01.html,否则登录失败访问http://127.0.0:81/es6/day02.html,使用jq中ajax调取服务,需要验证输入不能为空

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    请输入账号:<input type="text" name="" id="" class="zh"><br>
    请输入密码:<input type="text" name="" id="" class="mm"><br>
    <button class="btn">登录</button>

</body>
<script src="../es6/jquery-1.8.3.js"></script>
<script>
    let base = "http://127.0.0.1:81";
    $(".btn").click(function(){
        let user = $(".zh").val();
        let pass = $(".mm").val();
        if(!user && !pass){
            console.log("请输入账号密码");
            return;
        }
        $.ajax({
            type:"get",
            url:`${base}/login`,
            data:{
                userName:user,
                passWord:pass
            },
            success:(req)=>{
                console.log(req);
location.href = req;

            }
        })
    })
</script>
<script>
const express = require("express");
const cors = require("cors");
const app = express();
app.use("/es6",express.static("es6"))
app.use(cors());
app.get("/login",(req,res)=>{
    console.log(req.query);
    let data = req.query;
    if(data.userName=="admin"&&data.passWord=="123456"){
        res.send("http://127.0.0.1:81/es6/day01.html
");
    }else{
        res.send("http://127.0.0.1:81/es6/day02.html
");
    }
})
app.listen(81,()=>{
    console.log("express服务启动成功");
})
</script>

req.query 对象,可以访问到客户端通过查询URL 中携带的参数
req.params 对象,可以访问到 URL 中,通过 : 匹配到的动态参数
express.static()托管静态资源
注:使用静态资源托管尽量添加名称

中间件next();

<script>
const express = require("express");
const router = express.Router();
// 局部中间件next();
const mv = function(req,res,next){
    console.log("调用第一个中间件");
    next();
}
const mvs = function(req,res,next){
    console.log("调用第一个中间件");
    next();
}
router.get("/",(req,res)=>{
    res.send("get调取请求成功!")
})
module.exports = router;
</script>
<script>
const express = require("express");
const cors = require("cors");
const router = require("./day11-1.js");
const app = express();
// 全局中间件
 const mvss = function(req,res,next){
   console.log("全局中间件!");
    next();
 }
 app.use(mvss);
 app.use(router);
app.listen(81,()=>{
    console.log("服务启动成功!");
})
</script>

如有错误,还请指点,谢谢

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值