// 创建web服务器 //引用系统模块 const http = require('http') //用于创建网站服务器的模块 //创建web服务器 const app = http.createServer(); //app就是网站服务器对象 //当客户端发送请求时 app.on('request', (req, res) => { // 获取输出请求方式 console.log(req.method); // 获取输出请求报文信息 console.log(req.headers); //获取输出请求地址 console.log(req.url) res.end('<h1>hi user</h1>') // // res.writeHead(http状态码,{ // 'content-type':'内容类型' text/plain // }) // 内容类型:text/plain // text/html //text/css 等等 res.writeHead(200,{ 'content-type':'text/html:charset = utf8' }) }) //监听3000端口 app.listen(3000); console.log('服务器已经启动,监听3000端口,请访问localhost:3000'); // HTTP协议即超文本传输协议 // 概念:客户端与服务端沟通的规范 // 报文 :请求报文 // 响应报文: // HTTP状态码 200请求成功 404 请求资源没找到 500服务端错误 400客户端请求语法错误 // 请求方式:1.get 请求数据 // 2.post 发送数据 // GET请求参数 被放在浏览器地址栏中 ?之后的参数 可通过req.url获取 // 获取GET请求参数: const url = require('url')//用于处理url地址 一般用于登录信息的简短获取 // url下的prase()方法 url.parse(req.url)//返回解析后的对象 包含很多属性 比如query 包含地址参数解析后对象形式 pathname 表示?之前的url地址 url.parse(req.url,true)//第一个参数是要解析的地址 第二个参数是布尔值 代表是否将查询参数解析成对象形式 url.parse(req.url,true).query//地址解析后的对象 将?后的参数分别以属性属性值存放 // let params = url.parse(req.url,true).query // params.属性名 代表解析后的参数 // 比如 params.age=... // POST请求参数 在请求报文中
// 引用系统模块 const http = require('http') //用于创建网站服务器的模块 //创建web服务器 const app = http.createServer(); //app就是网站服务器对象 const querystring = require('querystring')//处理请求参数模块 //当客户端发送请求时 app.on('request', (req, res) => { //接收post参数 post参数是通过事件方式接收 data事件和end事件 且可能不是一次性接收完毕 // data当请求参数传递时触发data事件 // end 当参数传递完成时触发end事件 let postParams= ''; req.on('data', params => { postParams += params; }) req.on('end', () => { console.log(postParams);//输出请求参数 console.log(querystring.parse(postParams));//输出转换后的请求参数格式 以对象形式输出 }) res.end('ok')//服务端发出响应 表示接收到了请求参数 响应终止客户端的等待 }) //监听3000端口 app.listen(3000); console.log('服务器,监听3000端口,请访问localhost:3000');