美文网首页收藏node
Express内置中间件的使用

Express内置中间件的使用

作者: 听书先生 | 来源:发表于2022-03-14 22:51 被阅读0次
1.express.static():

express.static是用来处理静态资源文件的。
node中有一个内置模块path,path中的join()方法就是用来处理路径的,__dirname指的是当前项目文件夹的根目录。

// 推荐使用绝对路径
app.use(express.static(path.join(__dirname, 'public')));
  • 代码示例:
    先自行创建一个public文件,里面内容可以放一些静态资源
    图1.png
// 中间件
const express = require('express');
const path = require('path');
const app = express();

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

app.listen(3000, () => console.log('Server port 3000 at start....'));

这样响应回来的网页会是public下的内容。

我们也可以给静态资源目录制定一个虚拟路径

app.use('/static', express.static(path.join(__dirname, 'public')))
  • 代码示例:
// 中间件
const express = require('express');
const path = require('path');
const app = express();

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

// 给静态资源目录制定一个虚拟路径
app.use('/static', express.static(path.join(__dirname, './public')));

app.listen(3000, () => console.log('Server port 3000 at start....'));

使用虚拟路径的情况下,网页访问的话就不能使用/,而必须加上/static了,否则访问不了。

其次,这种带虚拟路径的中间件也可以玩成/api的接口模式

  • 访问带有虚拟路径的接口数据:
    创建一个json静态资源文件
{
    "name":"张三",
    "age": 23
}

我们可以创建一个不带api的为执行public静态资源的中间件,api接口数据则去创建一个虚拟路径去处理。

// 中间件
const express = require('express');
const path = require('path');
const app = express();

// 不带api的执行public下的资源文件
app.use(express.static(path.join(__dirname, './public')));

// 获取json数据
app.use('/api', express.static(path.join(__dirname, './data')));

app.listen(3000, () => console.log('Server port 3000 at start....'));

写一段script脚本去测试接口:

    <script>
        fetch('/api/data.json').then(res => res.json()).then(data => {
            console.log(data);
        })
    </script>
图2.png
2.express.json()

处理json方式的传参,内置的json中间负责把带有JSON的请求中(Content-Type='application/json')的数据提取出来,它基于body-parser

app.use(express.json());
// 中间件
const express = require('express');
const path = require('path');
const app = express();

// 处理json数据
app.use(express.json());

app.post('/qryTable', (req, res, next) => {
    console.log(req.body);
})


app.listen(3000, () => console.log('Server port 3000 at start....'));
图3.png
图4.png
3. express.urlencoded()

用于处理表单的传参方式
urlencoded负责将发送请求的数据提取出来,经过中间件之后,req.body为解析后的json字符串.

// 中间件
const express = require('express');
const path = require('path');
const app = express();

// 处理表单数据
app.use(express.urlencoded());

app.post('/qryTable', (req, res, next) => {
    console.log(req.body);
})


app.listen(3000, () => console.log('Server port 3000 at start....'));
图5.png
图6.png

相关文章

  • 利用express托管静态文件

    使用 Express 中的 express.static 内置中间件函数,提供诸如图像、CSS 文件和 JavaS...

  • Express API 总结

    1、express 相关 API: express.json(options)这是Express中内置的中间件功能...

  • Express内置中间件的使用

    1.express.static(): express.static是用来处理静态资源文件的。node中有一个内置...

  • 访问静态文件 static-file 中间件

    作为express 中间件使用

  • 3.Node学习(三)express开发框架

    一:express包含的底层技术以及中间件的含义 底层:http模块 Express框架建立在node.js内置的...

  • Express API总结

    Express API主要分为五部分: express.xxx 内置中间件 app.xxx 应用设置(如模板配置、...

  • 简单实现node中间件机制-仿express

    express中间件机制原理 首先,我们看一下express使用是怎么使用中间件的。 其实app.use()原理很...

  • Express学习

    使用中间件 Express 应用可使用如下几种中间件:* 应用级中间件* 路由级中间件* 错误处理中间...

  • Node之中间件

    中间件概述 Express框架中一个非常重要的概念——中间件。在Express框架中,允许通过中间件的使用来调用各...

  • express API

    五部分 express.xxx-内置中间件 app.xXx-应用设置(如模板引擎、中间件、挂载路由) req.xx...

网友评论

    本文标题:Express内置中间件的使用

    本文链接:https://www.haomeiwen.com/subject/ujcddrtx.html