express框架学习

  1. url 和 资源的 映射 ( 一一对应 )关系
    前端 发送一个请求 必须要有一个请求地址url
    后端 根据这个前端请求的地址url, 响应一些数据回去.
  1. express简单使用 (了解)
    1) 新建一个项目文件夹 app

    2) 进入这个文件夹 初始化项目 生成 package.json
        cd app
        npm init -y

    3) 局部安装(在当前项目文件夹里面安装)express,并且保存到 依赖列表 里面
        cnpm i express --savex

        备注: 装完以后 会生成一个 node_modules 文件夹, express就在里面(npm 下载的第三方模块都在里面)

    4) 在当前目录新建一个 app.js 文件 在这个文件里面来 写 express 的代码
        a) 引入express模块
            const express = require('express');

        b) 使用express() 方法 创建一个 app 应用
            const app = express();

        c) 使用 app 来 接收前端的请求 (get方式  post方式)
            app.get('前端请求的url', (req, res) => {
                // req :  请求对象 负责接收前端(浏览器 )发送过来的数据
                // res:  响应对象 负责响应数据给前端(后端给前端发送数据)
            })

        d) 监听端口
            app.listen(端口号, () => {
                console.log('服务器启动成功...')
            })
  1. express-generator脚手架的使用(快速生成一个项目的工程目录)
    1) 全局安装 express-generator (安装它的目的 是为了 运行 express命令 )
        cnpm i express-generator -g

        备注: 可以运行命令 express --version 检测一下 是否能使用
    
    2) 可以使用 express 命令 来快速从创建一个项目目录
        express 项目文件夹的名字 -e
        示例: express demo -e

        备注: 
            项目文件夹的名字:  会自动生成一个项目文件夹
            -e:  使用 ejs 模板

    3) 进入项目目录, 运行 cnpm i, 一次性安装所有的依赖模块
        cd demo 
        cnpm i

    
    4) 启动项目
        a)  方式一: (不推荐)
            npm run start  (start有点特殊 可以缩写 npm start)

            备注: npm run 可以运行 package.json 里面 script里面的内容

        b)  方式二 (*****推荐)
            i) 打开 app.js 文件 , 在文件尾部(在暴露出去之前),可以自己监听端口
                app.listen(端口号, () => {
                    console.log('服务器启动成功...')
                })

            ii) 启动项目
                node app

        补充:  因为每次都要动服务器代码, 都需要重启服务器,很烦
               可以全局安装一个模板 nodemon 
               1) 全局安装 nodemon
                   cnpm i nodemon -g

               2) 使用nodemon 替代 node 启动项目
                  原来:  node app 
                  现在:  nodemon app
  1. 项目目录详解:
    bin: 启动目录 里面包含了一个启动文件  www 默认监听端口是 3000 (不用)
    node_modules:   所有安装的依赖模块 都在这个文件夹里面
    public:  所有的前端静态资源  html css image  js 
    routes:  放的是 路由 文件 (默认有两个)
             路由主要定义 url 和 资源 的映射关系 ( 一一对应关系  )
             主要用来接收前端发送的请求 响应数据给前端

    views: 主要放置 ejs 后端模板文件
    app.js:  入口文件(主文件) 总路由 (其他的路由 要由它来分配)
    package.json:  包描述文件  最重要的是 依赖的模板列表 dependencies
                   依赖列表里面的所有模板 可以通过 cnpm i  一次性全部安装
  1. 路由分配:
    1) 在routes下面 新建一个子路由文件
        vip.js

    2) 在主路由文件 app.js里面 改动 两处
        a) 在第8行左右 引入路由
            var vipRouter = require('./routes/vip');

        b) 在25行左右 分配路由  /vip 下面的请求 都交给vip路由处理
            app.use('/vip', vipRouter);

    3) 以上步骤完成, 就可以在vip.js 这个路由里面 接收前端发送的 /vip下面的请求

  1. res响应对象(*****)
    res主要负责 后端向前端 响应(发送)数据(如果接收了请求 不响应,会一直挂起(转圈圈))

    主要方法:
        1) res.send() (*****)  // 万能方法  可以响应JSON 字符串 HTML script 
        2) res.json()  // 主要给前端响应 JSON 数据
        3) res.jsonp() // 主要给前端响应 JSON 数据(针对跨域请求)

        4)  数据和模板在后端合并渲染 生成HTML 返回给前端
             res.render('ejs模板文件', {JSON对象格式的数据})
        5) res.download('要下载的文件的路径', '标题')
        6) res.redirect("要跳转到的新的网址url")
        7) res.status(状态码404).render("ejs模板名字", {JSON对象格式的数据})
  1. req请求对象(*****)
    req主要负责 接收前端发送过来的数据(参数)

    主要方法:
        a) 接收 get 方式的请求的参数
            req.query.参数的key值

        b) 接收 post 方式的请求的参数
            req.body.参数的key值

        c) 补充:
            req.ip  获取浏览器的ip地址
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容