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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。