node处理http请求以及node实时检测环境改变搭建
这个部分首先需要去简述http请求的过程:
1.DNS解析域名找到ip地址,建立TCP连接,发送http请求
2.server端接收到http请求,处理并且返回结果(在server端需要进行的操作)
3.客户端接收到返回数据,然后处理数据
那么在使用node去处理http请求主要涉及到下面的内容:
get请求和querystring(其代表url)
post请求和postdata
路由
nodejs处理get请求和querystring
get请求,即客户端要向server端获取数据,如查询博客列表等
通过querystring来传递数据 如a.html?a=800&b=1000
浏览器直接访问就发送get请求
const http = require('http');
// 获取url参数
const querystring = require('querystring');
const server = http.createServer((req,res) => {
console.log('method:',req.method); //GET
const url = req.url;
console.log('url:',url);
req.query = querystring.parse(url.split('?')[1]);
console.log('req.query',req.query);
res.end(
JSON.stringify(req.query)
)
})
server.listen(8000);
console.log('ok');
以上的代码就是用于处理http中get请求的一种处理方式,在http.createServer((req,res) =>{})中,在里面的参数
req代表http请求中的request res代表http请求中的respose。在代码部分res.end()内部所表示的意思就是当响应
结束之后在页面端做出的结果输出。server.listen(8000)指的的localhost:8000下的8000端口。
要实现这个步骤首先就是在当前的文件夹中你需要处理使用npm init -y去初始化这个项目,最后在你的入口文件中去
输入上面的代码。要想在浏览器中去显示这个结果,需要的就是输入localhost:8000地址
nodejs处理post请求
使用postman去发送post请求
const server = http.createServer((req,res) => {
if(req.method === 'POST'){
//req数据格式
console.log('req content-type:',req.headers['content-type']);
//postData来接收数据
const postData = '';
req.on('data',chunk => {
postData += chunk.toString();
})
req.on('end',() => {
console.log('postData:',postData);
res.end('ni hao!');
})
}
})
server.listen(8000);
console.log('ok');
在上面的代码中就是使用nodejs去处理post请求的方式
路由:对于路由就是在server参数的函数中使用const path = req.url.split('?')[0]返回的就是路由 其中的
url = req.url
使用node搭建环境
在这里需要了解两个依赖包
nodemon监测文件变化,自动重启node cross-env设置环境变量,兼容mac linux和windows
环境搭建
1.打开当前目录然后使用npm init -y去初始化这个文件
2.更改其入口文件的地址为bin/www.js
3.在当前的文件下去新建bin目录然后再新建www.js文件
4.在项目中安装依赖包 npm install cross-env --save 和 npm install nodemon --save
5.更改监测文件的指令
"dev" : "cross-env NODE_ENV=dev nodemon ./bin/www.js", 如果是dev就在控制台上打印
"prd" : "cross-env NODE_ENV=production nodemon ./bin/www.js" 如果是production就写在文件当中
监测代码,在www.js主要写的是有关于处理业务技术部分的代码,代码如下:
const http = require('http');
const PORT = 8000;
const serverHandle = require('../app');
const server = http.createServer(serverHandle);
server.listen(PORT);
如果是处理业务逻辑的代码就放在app.js文件当中,代码如下:
const serverHandle = (req,res) => {
//设置返回JSON的格式
res.setHeader('Content-type','application/json');
const resData = {
name: '世界你好',
site: 'imooc',
env: process.env.NODE_ENV //在这部分中的NODE_ENV主要用于检测文件的变换
}
res.end(
JSON.stringify(resData)
)
}
module.exports = serverHandle;