美文网首页
尝试用nodejs写一个中间件

尝试用nodejs写一个中间件

作者: 王伯卿 | 来源:发表于2018-01-01 19:05 被阅读0次

这个中间件是模仿body-parser写的,旨在明白中间件是什么以及如何工作的.

当我们解析POST数据的时候,需要有body-parser作为中间的一步,这样我们才可以顺利的拿到req.body的数据.

const express=require('express');
const bodyParser=require('body-parser');

var server=express();
server.listen(3000);

//POST数据的解析需要有中间件先解析一层
//body.urlencoded会给req加上一个body属性
//req.body本来就是不存在的
//加上之后后面才可以正常输出
server.use(bodyParser.urlencoded({}));

server.use('/', function(req,res){
  console.log(req.body);//输出{ user: 'ccs', pass: '123' }
});

要实现这样的效果,我们需要新建一个中间件文件,取名为

my-body-parser.js
const querystring=require('querystring');

//将一整个模块输出供别人使用
module.exports=function(req,res,next){
  var str='';
  req.on('data',function(data){
    str+=data;
  });
  req.on('end',function(){
    req.body=querystring.parse(str);
    next();
  });
}

然后我们来使用这个中间件

const express=require('express');
//这个路径需要注意
const myBodyParser=require('./libs/my-body-parser.js');

var server=express();
server.listen(3000);

server.use(myBodyParser);
server.use('/',function(req,res){
  console.log(req.body);
});

最后是我们的html文件

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body>
  <form action="http://localhost:3000" method="post">
    username <input type="text" name="user" value=""><br>
    password <input type="password" name="pass" value=""><br>
    <input type="submit" value="send">
  </form>
</body>
</html>

最后测试通过,顺利输出json

{ user: 'ac', pass: 'dcvv' }

相关文章

  • 尝试用nodejs写一个中间件

    这个中间件是模仿body-parser写的,旨在明白中间件是什么以及如何工作的. 当我们解析POST数据的时候,需...

  • express 中间件

    NodeJs 的中间件分为两种: 应用中间件 app.use() 路由中间件 app.get()、app.post...

  • NodeJS中间件机制学习

    理解NodeJS中间件机制核心代码的实现,加深对中间件机制的理解,有助于更好的使用和编写中间件。 目录 中间件概念...

  • 【原创】NodeJS中间件机制探索和实现

    理解NodeJS中间件机制核心代码的实现,加深对中间件机制的理解,有助于更好的使用和编写中间件。 目录 中间件概念...

  • nodejs 中间件

    package.json 属性 private 代表项目是否私有 属性 scripts 是项目启动执行的命令,其中...

  • 如何写一个OWIN中间件?

    什么是OWIN中间件? 如何写一个中间件?

  • nodejs之koa中间件源码解析

    前言 上一篇《nodejs之express中间件》已经对express中间件的实现做了详细的讲解,同时也对实现中间...

  • 两种常用的跨域设置

    nodejs服务器端跨域设置 使用一个中间件 更为复杂一点的跨域中间件如下: webpack设置跨域 我们的服务器...

  • 两种常用的跨域设置

    nodejs服务器端跨域设置 使用一个中间件 更为复杂一点的跨域中间件如下: webpack设置跨域 我们的服务器...

  • 正在学习的项目

    nodejs+mongodb+ejs+express 学到的知识 mongodb的常用操作express中间件的使...

网友评论

      本文标题:尝试用nodejs写一个中间件

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