9.发送基本请求(POST,GET)
1.创建服务器
2.渲染html页面
向服务器发送请求获取到要渲染的网页(html文件)
渲染html文件的几种方法
- fs读取文件发送
fs.readFile("./view/add.html", {
encoding: 'utf-8'
}, function (err, data) {
if (err) {
res.writeHead(404, {
"Content-Type": "text/html"
});
res.end("404");
} else {
res.writeHead(200, {
"Content-Type": "text/html"
});
res.end(data)
}
})
- res.sendFile() 响应发送文件的方式
res.sendFile(__dirname+'/index.html')
- res.render('index.html') 模板引擎响应方法
需要先配置模板引擎
res.render('index.html')
3.将视图数据提交到后端
输入数据,点击提交,将html数据提交到后端
- 使用form时,将action设置为后端要处理的路由,input设置name属性接收输入的数据
//提交路径为"/myLogin",方法为post
<form action="/myLogin" method="post">
<input type="text" id="user" name="user">
<input type="password" id="pwd" name="pwd">
<input type="submit" value="登录">
</form>
- post请求数据在响应头,get请求数据会拼接在url路径之后
4.创建路由处理视图提交的数据
路由文件与视图提交的路径相同
创建路由
//post请求使用app.post()
app.post('/mylogin',function(req,res){
})
//get请求用app.get()
获取视图提交的数据
由于post请求数据在响应头,get请求数据会拼接在url路径之后
-如果是get请求
通过url内置模块获取到get发送的请求,并通过url.parse方法将数据转化为对象
//引入模块
const url=require('url')
//url.parse方法将数据转化为对象
var paramobj = url.parse(req.url, true).query;
-如果是post请求
方法1.Node原生的http模块中
通过一个事件:监听是否有数据
req.on("data",(chunk)=>{
console.log(chunk.toString());//chunk就是传过来的数据,格式为Buffer,通过toString()转化为字符串
let obj=querystring.parse(chunk.toString())//将数据转化为对象
}
方法2.Express中间件body-parserlosspm
- 引入bodyParser模块
- 解析 application/json
- 解析 application/x-www-form-urlencoded
- 打印结果
//引入bodyParser模块
const bodyParser=require('body-parser');
//解析 application/json
app.use(bodyParser.json());
//解析 application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({extended:false}))
//在路由中打印结果
console.log(req.body);
创建变量存储数据
操作数据
路由跳转
图示:



浙公网安备 33010602011771号