zoukankan      html  css  js  c++  java
  • Express 路由

    1. 创建 package.json

    cd 到项目中, 执行

    npm init --yes  // 创建 package.json

    2. 安装 express

    npm install express --save  // 安装 express,并注册到 package.json 中

    3. 引入,并实例化 

    安装完成后,在项目中使用,比如,创建一个文件,名为 app.js,在 app.js 中写入以下代码

    const express = require('express') // 引入 express
    const app = new express(); // 实例化

    4. 创建路由

    引入并实例化后,就可以创建路由了

    app.get('/', (req,res) => {
           res.send('index')  // 在页面中打印出 index, res.send 相当于 res.write + res.end
    })
    app.listen(3000,'127.0.0.1')

    此时,一个简单的 get 传值的路由就配置好了。

    5. 动态路由

    多数时候,我们需要获取到请求地址中传的值,此时,需要用到动态路由,

    比如,有这样一个地址: localhost:3000/musicContent/qinghuaci , 想获取 musicContent 后传过来的值 

    代码如下:

    app.get('/musicContent/:musicName',(req,res)=>{
        console.log(req.params);  // 获取动态路由传值
       let musicName = req.params.musicName;
       res.send(musicName);
    })

    结果为:

    6. 获取 get 传值

    get 传值格式为:localhost:3000/product?productName=apple&&productAge=10   ,注意与动态路由传值区分

    代码如下:

    app.get('/product', (req, res) => {
        console.log(req.query);  // { productName: 'apple' }
        res.send(req.query.productName+'---'+ req.query.productAge);
    })

    结果如下:

     7.静态路由

    模板引擎我们采用 ejs,首先,安装 ejs 模板引擎

    npm install ejs --save

    与 node 中不同,在 express 中,不需要引入 ejs,执行以下代码,即可使用

    app.set("view engine", "ejs");  // 默认路径 views

    我们创建一个文件夹为 views,在这个文件夹下创建一个 ejs 文件,index.ejs

    使用方法如下:

    // 不传值时
    app.get('/', (req, res) => { res.render('index'); })
    // 传值时
    app.get('/', (req, res) => { let list = ['111', '222', '333']; res.render('index', {list}) })

    现在,我们想在 index.ejs 中,引入一个公共的头部,创建项目格式如下所示:

    在 index.ejs 中引入如下代码:

    <%- include public/header.ejs %>

    以上都是前期准备,下面,开始配置静态路由,比如,我想给 header 加一个背景颜色,应该怎么做呢?这就涉及到文件的解析,好在 express 已经帮我们配置好了,

    在主目录下创建如下结构

    index.css 中就是 header.ejs 的样式文件,我们需要用到 experss 提供的中间件来实现静态路由

    // 中间件
    app.use(express.static('public'));  // 默认路径为 public

    然后,在 index.ejs 中引入 index.css

    <link rel="stylesheet" href="css/index.css">

    此时,静态路由就配置好了,效果如下所示:

    Network 下查看文件路径及类型

    如果你希望所有通过 express.static 访问的文件都存放在一个“虚拟(virtual)”目录(即目录根本不存在)下面,可以通过为静态资源目录指定一个挂载路径的方式来实现,

    如下所示:

    app.use('/static', express.static('public'));

    此时,我们就可以通过 

    localhost:3000/static/css/index.css

    找到 index.css 文件。同理,我们在 ejs 文件中引入时,也需这样写:

    <link rel="stylesheet" href="static/css/index.css">

    以上就是本文的全部内容。

  • 相关阅读:
    springboot整合swagger2+跨域问题
    springboot整合日志+多环境配置+热部署
    springboot整合多数据源以及多数据源中的事务处理
    springboot整合jsp
    springboot整合freemarker
    SpringBoot的全局异常处理
    python之多进程记录
    使用python批量造测试数据
    python之global用法
    Jenkins构建从github上克隆时,报Host key verification failed.
  • 原文地址:https://www.cnblogs.com/Sky-Ice/p/9440890.html
Copyright © 2011-2022 走看看