zoukankan      html  css  js  c++  java
  • express使用方法

    Express 是一个简洁而灵活的 node.js Web应用框架.

    提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具。

    使用 Express 可以快速地搭建一个完整功能的网站。

    Express 框架核心特性:

    • 可以设置中间件来响应 HTTP 请求。

    • 定义了路由表用于执行不同的 HTTP 请求动作。

    • 可以通过向模板传递参数来动态渲染 HTML 页面。

    官网下载安装npm,node
    npm install express --save
    npm install -g webpack
    npm install -g yarn

    mkdir express-hello-world
    cd express-hello-world
    yarn inist -y

    yarn add express

    VScode打开文件夹

    // 引入express
    const express = require("express");
    //创建express的实例
    const app = express();
    
    //设置监听端口
    const port = 3000
    app.listen(port,()=>{
        console.log('express server listening at http://localhost:${port}');
    });
    

     在终端中输入node app.js启动服务

    启动后还无法打开.还需要url

    // 引入express
    const express = require("express");
    //创建express的实例
    const app = express();
    
    //大部分应用使用json格式,为了让express能够解析json格式的请求体,
    //添加express.json中间件到app中,中间件自定义的比如log,扩展express功能 
    //请求前响应前做特定的
    app.use(express.json());
    
    app.get("/",(req,res)=>{
        res.send("Hello World");
    });
    
    app.post("/",(req,res)=>{
        console.log("收到请求体:",req.body);
        res.status(201).send();
    });
    
    
    //设置监听端口
    const port = 3000
    app.listen(port,()=>{
        console.log('express server listening at http://localhost:${port}');
    });
    

      使用postman来测试

    收到请求,返回了201状态码

     

    put是用来更新服务器上资源的.要知道存在资源的唯一标识,一般是数据库中的id,put发出请求时,在url中提供标识参数.然后在express中解析出来.根据它去更新服务器上的资源.

    这是使用app中的put方法来创建put请求.

    // 引入express
    const express = require("express");
    //创建express的实例
    const app = express();
    
    //大部分应用使用json格式,为了让express能够解析json格式的请求体,
    //添加express.json中间件到app中,中间件自定义的比如log,扩展express功能 
    //请求前响应前做特定的
    app.use(express.json());
    
    app.get("/",(req,res)=>{
        res.send("Hello World");
    });
    
    app.post("/",(req,res)=>{
        console.log("收到请求体:",req.body);
        res.status(201).send();
    });
    
    //根跟径后面的值都会做为请求的参数,并且赋给名为id的变量.
    app.put("/:id",(req,res)=>{
        console.log("收到请求的参数,id为: ",req.params.id);
        console.log("收到请求体:",req.body);
    
        res.send();
    });
    
    //设置监听端口
    const port = 3000
    app.listen(port,()=>{
        console.log('express server listening at http://localhost:${port}');
    });
    

      postman来试试看

     

     

     delete 用于删除服务器上的资源和put一样它也需要 标识.使用app.delete方法,反回204状态码.

    // 引入express
    const express = require("express");
    //创建express的实例
    const app = express();
    
    //大部分应用使用json格式,为了让express能够解析json格式的请求体,
    //添加express.json中间件到app中,中间件自定义的比如log,扩展express功能 
    //请求前响应前做特定的
    app.use(express.json());
    
    app.get("/",(req,res)=>{
        res.send("Hello World");
    });
    
    app.post("/",(req,res)=>{
        console.log("收到请求体:",req.body);
        res.status(201).send();
    });
    
    //根跟径后面的值都会做为请求的参数,并且赋给名为id的变量.
    app.put("/:id",(req,res)=>{
        console.log("收到请求的参数,id为: ",req.params.id);
        console.log("收到请求体:",req.body);
    
        res.send();
    });
    
    app.delete("/:id",(req,res)=>{
        console.log("收到请求参数,id为: ",req.params.id);
        res.status(204).send();
    });
    
    //设置监听端口
    const port = 3000
    app.listen(port,()=>{
        console.log('express server listening at http://localhost:${port}');
    });
    

      

     

     对于一个json的express项目,一般会有多组api,比如文章,产品,订单等,然后分布在子路由中处理.

    在项目根目录下创建一个routes文件夹,子目录下创建post.js

    在post.js 中导入express实例.

    post.js代码如下:

    //导入实例
    const express = require("express");
    //创建叫route的实例,处理子路由
    var route = express.Router();
    
    
    route.get("/",(req,res)=>{
        res.send({id:1,title:"express入门教程"});   //get请求中返回实例数据
    });
    
    route.post("/",(req,res)=>{
        console.log("保存文章:",req.body);
        res.status(201).send({id:2,...req.body});
    });
    
    //根跟径后面的值都会做为请求的参数,并且赋给名为id的变量.
    route.put("/:id",(req,res)=>{
        console.log("收到请求的参数,文章id为: ",req.params.id);
        console.log("收到请求体,新的文章内容是:",req.body);
    
        res.send({id:req.params.id, ...req.body});
    });
    
    route.delete("/:id",(req,res)=>{
        console.log("收到请求参数,id为: ",req.params.id);
        res.status(204).send();
    });
    
    module.exports = route;
    

      

    因为项目中可能包含多个子路由,为了不让app.js文件过于庞大,我们在routses下新建一个index.js用于统一处理路由.

    //引入子路由,导出一个函数,接收app对象挂载子路由.
    const post = require("./post");
    module.exports = app =>{
        app.use("/post",post);
    };
    

     最终的app.js代码如下: 

    // 引入express
    const express = require("express");
    const port = 3000//设置监听端口
    const app = express();//创建express的实例
    const routes = require("./routes")//引入routes文件夹
    
    
    
    //大部分应用使用json格式,为了让express能够解析json格式的请求体,
    //添加express.json中间件到app中,中间件自定义的比如log,扩展express功能 
    //请求前响应前做特定的
    app.use("/post",post);
    app.use(express.json());
    
    routes(app);//调用函数
    
    app.get("/",(req,res)=>{
        res.send("Hello World");
    });
    
    app.post("/",(req,res)=>{
        console.log("收到请求体:",req.body);
        res.status(201).send();
    });
    
    //根跟径后面的值都会做为请求的参数,并且赋给名为id的变量.
    app.put("/:id",(req,res)=>{
        console.log("收到请求的参数,id为: ",req.params.id);
        console.log("收到请求体:",req.body);
    
        res.send();
    });
    
    app.delete("/:id",(req,res)=>{
        console.log("收到请求参数,id为: ",req.params.id);
        res.status(204).send();
    });
    
    app.listen(port,()=>{
        console.log('express server listening at http://localhost:${port}');
    });
    

      

    有点乱,空了整理下

  • 相关阅读:
    springMVC+MyBatis+Spring+maven 整合(1)
    mysql.zip免安装版配置
    5.6 循环依赖
    5.5 准备创建bean
    5.4 获取单例
    SQL Server(九)——事务
    SQL Server(七)——存储过程
    SQL Server(八)——触发器
    SQL Server(六)——索引、视图和SQL编程
    SQL Server(五)——常用函数 转
  • 原文地址:https://www.cnblogs.com/magicking/p/14542764.html
Copyright © 2011-2022 走看看