请求方式有两种 get和post
1.get方式
可以直接用 url 类的query方法直接取到
const fs = require('fs'); const url = require('url'); //导入url const http = require('http'); //导入http const querystring = require('querystring'); //导入查询字符串 const hostname = '192.168.1.108'; //ip地址 随便写 如需要在局域网内,用手机访问,则需要将其设置为电脑的ipv4地址 const port = 3000; //端口号 const server = http.createServer((req, res) => { //创建一个server res.statusCode = 200; res.setHeader('Content-type','text/html;charset = utf-8'); if (req.url !== '/favicon.ico') { //清除二次访问 //用于测试 login(res); //get提交方式方式 let query_get = url.parse(req.url,true).query; //parse 第二个参数为true 返回的是一个对象 query:取得请求时传的数据 console.log(query_get); //{ username: '3333', psd: '55555' } } }); server.listen(port, hostname, () => { //监听server console.log(`服务器运行在http://${hostname}:${port}/`); }); function login(res) { fs.readFile('./my_directory/demo.html','utf-8',(err,data)=>{ if(err){ console.log(err); res.end(); }else { res.write(data); } }); }
2.post
需要用请求监听 data 事件进行数据传输,数据传输又会触发一个end事件 然后需要 querystring模块中的 querystring.parse();将请求参数解析成对象
const fs = require('fs'); const url = require('url'); //导入url const http = require('http'); //导入http const querystring = require('querystring'); //导入查询字符串 const hostname = '192.168.1.108'; //ip地址 随便写 如需要在局域网内,用手机访问,则需要将其设置为电脑的ipv4地址 const port = 3000; //端口号 const server = http.createServer((req, res) => { //创建一个server res.statusCode = 200; res.setHeader('Content-type','text/html;charset = utf-8'); if (req.url !== '/favicon.ico') { //清除二次访问 //用于测试 login(res); //get提交方式方式 // post提交方式 (可以接收biget更多的参数) let query_post = ''; //用来暂时储存post请求的参数 req.on('data',(data_chip)=>{ //监听req的data事件 收到一个字节流,就在query_post加上 当接收完毕会触发一个end事件 console.log('我是在接收中的-----'+data_chip); query_post += data_chip; }); req.on('end',()=>{ console.log('接收完毕!'); console.log('没有转换的-----'+query_post); //username=66565&psd=545455 query_post = querystring.parse(query_post); //将query_post解析对象 console.log('----------------'); console.log(typeof query_post); console.log(query_post); //{ username: '66565', psd: '545455' } }); } }); server.listen(port, hostname, () => { //监听server console.log(`服务器运行在http://${hostname}:${port}/`); }); function login(res) { fs.readFile('./my_directory/demo.html','utf-8',(err,data)=>{ if(err){ console.log(err); res.end(); }else { res.write(data); res.end(); } }); }