9.发送基本请求(POST,GET)

1.创建服务器

2.渲染html页面

向服务器发送请求获取到要渲染的网页(html文件)
渲染html文件的几种方法

  1. 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)
            }
        })
  1. res.sendFile() 响应发送文件的方式
res.sendFile(__dirname+'/index.html')
  1. 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);

创建变量存储数据

操作数据

路由跳转

图示:

posted @ 2021-12-01 12:44  禾耳  阅读(116)  评论(0)    收藏  举报