1、http搭建服务器
代码块详解
var http = require('http'); //引入http模块
http.createServer(function(request, response) {
//createServer 创建一个服务
//request表示获取从客户端传过来的信息
//respose表示给浏览器返回后信息
//request 到 respose就是一个接受信息到返回信息的过程
response.write("<head><meta charset='UTF-8'></head>");
//我们通过writeHead设置的返回字符集的格式虽然是utf8但是
//并没有在html中写入,为了避免乱码,我们在返回的html文件中
//插入这样一行代码
response.writeHead(200, { 'Content-Type': 'text/plain' });
//设置响应头 响应头就是告诉浏览器自己要返回什么样的数据
response.end('Hello World');
//表示给我们页面上输出一句话并且结束响应,结束响应
//未调用会进入假死状态
}).listen(8082); //表示这个网络服务挂载的端口号
console.log('Server running at http://127.0.0.1:8082/');
2、url传递参数
const url = require('url');
var api = 'http://www.itying.com?name=张三&age=20';
console.log(url.parse(api, true));
//这里的parse后面的true的作用是将url?后面的参数转化为对象
var temp = url.parse(api, true).query;
console.log(`姓名:${temp.name}---年龄:${temp.age}`);
//这里使用的是es6的模板字符串
3、两者搭配使用
const http = require('http');
const url = require('url');
var api = '127.0.0.1:3000?name=张三&age=20';
http.createServer(function(request, response) {
response.writeHead(200, { 'Content-Type': 'text/plain' });
if (request.url !== '/favicon.ico') {
var api = request.url;
console.log(api); //1
var apiParse = url.parse(api, true);
console.log(apiParse); //2
console.log(apiParse.query); //3
var apiQuery = apiParse.query;
console.log(`4: ${apiQuery.name}`); //4
}
response.end('Hello World');
}).listen(3000);
console.log('Server running at http://127.0.0.1:3000/');
解释一下这里的1 2 3 4
//1 这里的%E5%BC%A0%E4%B8%89是经过加密了
/?name=%E5%BC%A0%E4%B8%89&age=20
//2
Url {
protocol: null,
slashes: null,
auth: null,
host: null,
port: null,
hostname: null,
hash: null,
search: '?name=%E5%BC%A0%E4%B8%89&age=20',
query: [Object: null prototype] { name: '张三', age: '20' },
pathname: '/',
path: '/?name=%E5%BC%A0%E4%B8%89&age=20',
href: '/?name=%E5%BC%A0%E
//3
[Object: null prototype] { name: '张三', age: '20' }
//4
sssss: 张三
4、两者搭配使用的一个过程
获取url 解析parse 获取参数集对象query 获取具体参数.name