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">

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

posted @ 2018-08-08 09:28  Sky_Ice  阅读(171)  评论(0编辑  收藏  举报