nodejs接收post请求,node.js post请求

  nodejs接收post请求,node.js post请求

  本文带你了解node.js中的热重启、get请求、post请求、中间件,希望对你有所帮助!

  node.js速度课程简介:进入学习

  

一、node热重启

  1.安装

  2.运行启动

  

二、关于get请求

  一般在网站开发中,使用get进行数据采集和查询,类似于数据库中的查询操作。当服务器解析前台资源时,发送相应的内容;并且在URL上执行查询字符串,例如:

  

获取前台get请求

  用户发出的get请求可以通过req.query获取,然后通过节点操作将相应的数据返回给用户。

  如果您要发送:

  如果您回复,请传递:

  Req.query他会得到所有的数据,或者

  req.query.goods1

  Req.query.goods2来分离或删除每个数据。总之,不同的需求对应不同的业务,每个人都可以根据自己的需求去获取;

  

实例

  以下是通过示例获取get参数的摘要:

  HTML:

  !声明文档类型

  超文本标记语言

  头

  meta charset=utf-8

  标题/标题

  /头

  身体

  表单操作=http://localhost:8080/login 方法=get

  用户:

  type= text name= user id= user placeholder= user name /

  英国铁路公司

  密码:

  type= password name= password id= password placeholder= password /

  英国铁路公司

  输入=提交值=提交/

  /表单

  /body

  /htmlnode:

  const express=require( express );

  var app=express();

  app.get(/),function(req,res){

  Res.send(主页);

  });

  app.get(/login ,function(req,res){

  console . log(req . query);

  Res.send(登录路由,用户为: req.query.user ==密码为: req . query . password));

  });

  app . listen(8080);

三、关于POST请求

   post方法是http请求的重要组成部分,几乎所有网站都在使用。与get不同,post请求更像是修改服务器,一般用于更新数据资源。与get请求相比,post请求的数据会更安全。上一章我们发现get请求会在地址栏显示输入的用户名和密码(有中文的情况下会转换成BASE64加密),而post请求会把数据放到http包的正文里,这样别人就无法直接看到用户名和密码了!

  :

Express如何设置POST请求

   1.首先,我们要知道在表单中提出帖子请求。enctype属性一般设置为“application/x-www-form-urlencoded”。如果设置为多部分/形式数据,则主要用于文件上传,如下所示:

  form action= # method= post enctype= application/x-www-form-urlencoded

  /form2。设置解析体中间件。

  App.use(express.urlencoded())3 .获取身体数据

  req.body .用户名

登陆案例:

   HTML:

  !声明文档类型

  超文本标记语言

  头

  meta charset=UTF-8

  meta name= viewport content= width=device-width,initial-scale=1.0

  meta http-equiv= X-UA-Compatible content= ie=edge

  标题文档/标题

  /头

  身体

  H1登录/h1

  表单操作=/login 方法=POST

  差异

  用户名:输入类型=文本名称=用户名

  /div

  差异

  密码:输入类型=密码名称=密码

  /div

  按钮登录/按钮

  /表单

  /body

  /htmlAPP。射流研究…

  var express=require( express );

  var path=require(path )

  var app=express();

  var sqlQuery=require(。/lcMysql )

  //查看引擎设置

  app.set(views ,path.join(__dirname, views ));

  app.set(视图引擎, ejs );

  app . use(express . static(path . join(_ _ dirname, public ));

  //解析post提交的数据

  app.use(express.urlencoded())

  //搜索主页

  app.get(/,(req,res)={

  res.render(index.ejs )

  })

  //登录页面

  app.get(/login ,(req,res)={

  res.render(登录)

  })

  //处理登录请求

  app.post(/login ,async (req,res)={

  //获取用户名和密码

  让用户名=req.body.username

  let password=req.body.password

  //查询数据库是否是这个用户名和密码。

  let sqlStr= select * from user where username=?和密码=?;

  设arr=[用户名,密码];

  let result=await sqlQuery(sqlStr,arr)

  if(result.length==0 ){

  Res.send(“登录失败”)

  }否则{

  Res.send(登录成功)

  }

  })

  module.exports=app

四、中间件

  从字面意思可以知道很可能是做中介代理操作,事实也是如此;在大多数情况下,中间件是接收请求和发送响应之间的一系列操作。事实上,express是一个路由和中间件的web框架,Express应用基本上是一系列中间件功能。

  1.浏览器发送一个请求。

  2 .快递接受请求

  中间加工过程

  3.路由函数处理渲染(req,res)

  4.res.render渲染

  中间件功能可以执行以下任务:

  执行任何代码。对请求和响应对象进行更改。结束请求/响应循环。调用堆栈中的下一个中间件函数。中间件又分为应用中间件、路由中间件、内置中间件、错误处理中间件和第三方中间件。下面分别解释:

  

1.应用层中间件

  应用级中间密钥使用app.use和app绑定到app对象。METHOD()-需要处理http请求的方法,比如GET、PUT和POST。只需用use替换之前的get或post即可。例如下面例子:

  const express=require( express );

  var app=express();

  //匹配路线前的动作

  app.use(function(req,res,next()){

  Console.log(访问前);

  });

  app.get(/),function(req,res){

  Res.send(主页);

  });

  app . listen(8080);这时候我们会发现http://localhost:8080/的地址已经加载了,但是命令行显示“访问前”,这意味着程序不会同步执行。如果使用next使路线继续向下匹配,则可以再次获得主页数据:

  const express=require( express );

  var app=express();

  //匹配路线前的动作

  app.use(function(req,res,next){

  Console.log(访问前);

  next();

  });

  app.get(/),function(req,res){

  Res.send(主页);

  });

  app . listen(8080);当然,你也可以简化写法:

  const express=require( express );

  var app=express();

  app.use(function(req,res,next){

  Console.log(访问前);

  next();

  },函数(req,res){

  Res.send(主页);

  });

  app . listen(8080);所以,如果你想在路由匹配之前或者重录继续向下执行的时候做一个操作,应用层中间件无疑是一个不错的选择。

  

2.路由中间件

  路由级中间件类似于应用层中间件,只是需要绑定express。路由器();

  Var路由器=express。Router()匹配路由时,我们使用router.use()或router。动词()。结合多重回调的路由中间件可用于用户登录和用户状态检测。

  const express=require( express );

  var app=express();

  var路由器=express。路由器();

  router.use(/),function(req,res,next){

  Console.log(匹配前);

  next();

  });

  router.use(/user ,function(req,res,next){

  Console.log(匹配地址:,req . original URL);

  next();

  },函数(req,res){

  Res.send(用户登录);

  });

  app.use(/,路由器);

  app . listen(8080);总之,路由中间件在检测用户登录和引导用户访问哪个页面方面绝对有用。

  

3.错误处理中间件

  顾名思义,指的是我们无法匹配路线时执行的操作。错误处理中间件与其他中间件基本相同,只是它要求开发人员提供四个参数。

  app.use((err,req,res,next)={

  RES . send status(err . httpstatuscode)。JSON(err);

  });通常,我们将错误处理放在底部,这样我们就可以集中处理错误。

  const express=require( express );

  var app=express();

  app.get(/),function(req,res,next){

  const err=新错误(“未找到”);

  Res.send(主页);

  下一个(err);

  });

  app.use(/user ,function(err,req,res,next){

  Console.log(用户登录);

  下一个(err);

  },函数(req,res,next){

  Res.send(用户登录);

  next();

  });

  app.use(function(req,res){

  Res.status(404)。发送(“未找到指定的页面”);

  });

  app . listen(8080);

4.内置中间件

  从4.x版本开始,express不再依赖于内容,也就是说之前的Express内置中间件是一个独立的模块,express.static是Express唯一的内置中间件。

  express.static(root,[options]);通过express.static,我们可以指定要加载的静态资源。

  

5.第三方中间件

  就像我们之前的body-parser,使用外部模块来获得更多的应用操作。例如晚期cookie和会话。

  var express=require( express );

  var app=express();

  var cookie parser=require( cookie-parser );以上是关于快递中间件的类型。在实际项目中,中间件是必不可少的,所以熟悉各种中间件的使用会加快项目的开发效率。

  更多关于node的信息,请访问:nodejs教程!以上就是nodejs中get/post请求和中间件的全部细节。更多请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: