node http模块
概念: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事件
- Node学习HTTP模块(HTTP 服务器与客户端)
- Node.js HTTP模块
- Node.js 初识 HTTP 模块
- Node.js核心模块http客户端
- Node Http模块
- node.js——http模块
- Node.js常用模块之HTTP
- Node.js12 Http模块
- Node.js学习笔记(3、http模块)
- Node:Q与node http模块搭配
- Node中http模块详解(服务端篇)
- node.js学习笔记——学生信息管理的实现(把功能模块化)使用官方提供的http模块实现
- Node.js 的 http 模块
- 第1章-安装Node.js及相关要点-1.7.使用Node.js的HTTP模块来创建一个简单服务器
- node.js中使用http模块发送请求时的一个小错误
- Node中http模块详解(服务端篇)
- 使用node的http模块实现爬虫功能,并把爬到的数据存入mongondb
- Node.js的http模块理解
- Node.js (一)—— 概念、环境安装、读取文件、模块系统(require)、使用http创建简单的服务器、ip地址和端口号概念
- 再次验证golang与node.js的http模块性能对比测试