您的位置:首页 > 理论基础 > 计算机网络

node http模块

2020-08-08 09:53 155 查看

概念:node中内置了http模块,实现http服务器的搭建
const http=require(‘http’);
1.服务器搭建

const server=http.createServer((req,res)=>{
});
server.listen(3000);

req: request对象,包含了所有的请求信息
res: response对象,包含了响应信息

2.请求对象
request对象 包含了所有与请求相关的信息
url: 端口后的所有内容 :资源路径、查询字符串…
method: 请求方式

3.响应对象
end() 结束响应 传输数据给客户端
write() 给客户端传递数据

插件:nodemon 能够监听服务端代码的改变,若服务端代码发生改变,会自动重新部署服务器
npm install nodemon -g
使用:nodemon 文件名

总结:response对象是响应对象
1)若请求过程中出了中文乱码,设置响应头
setHeader(‘content-type’,’text/html;charset=utf8’);
writeHead(200,’ok’,{‘content-type’:”text/html;charset=utf8”});
参数二:是状态码的描述信息,默认是”ok”,也可以修改,但是不支持中文

注意:不能将setHeader和writeHead同时使用
2)write方法可以多次调用,将多个内容均返回给客户端(不能在end之后调用write)
3)end() 方法只能执行一次,若执行多次,报错

4.MIME类型:
媒体类型(通常称为 Multipurpose Internet Mail Extensions 或 MIME 类型 )是一种标准,用来表示文档、文件或字节流的性质和格式

重要:浏览器通常使用MIME类型(而不是文件扩展名)来确定如何处理URL,因此Web服务器在响应头中添加正确的MIME类型非常重要。如果配置不正确,浏览器可能会曲解文件内容,网站将无法正常工作,并且下载的文件也会被错误处理。
常见的MIME类型:
text/plain 文本
text/html
image/jpeg

参考:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types
5.路由
路由: 可以理解为路由就是url路径的变化,通过路径的变化,我们可以访问不同的网页内容,这就叫路由。实际上路由应该是url路径的变化和http请求方法的结合(GET和POST等方法)
NodeJS中并没有物理路径,

//根据路由不同,进行分发
if (pathname.includes('favicon')) {
res.end();
return;
} else if (pathname == '/login') {
//username=jack&pwd=123
// let data=qs.parse(obj.query);//将查询字符串转换为对象
// console.log(data);//  { username: 'jack', pwd: '123' }
let { username, pwd } = qs.parse(obj.query);
if (username == 'admin' && pwd == '123') {
res.write(JSON.stringify({
code: '200',
msg: "登录成功",
username
}));
} else {
res.write(JSON.stringify({
code: '400',
msg: "登录失败"
}));
}

// res.write('登录功能');
} else if (pathname == '/register') {
res.write('注册');
} else if (pathname == '/index') {
res.write('首页');
} else {
res.write('我是默认信息。');
}

6.get和post请求
由于get和post请求的数据提交方式是不一样的,
Get:在地址中提交数据
Post:请求体里提交数据

后端通过request.mehtod属性来判断是哪种请求,在解析两种请求的时候方案也是不一致的,
Get: 在请求对象的属性中直接获取
Post: 需要通过事件监听机制来完成数据的接收,监听 data和end事件

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: