Nodejs处理get、post请求和搭建开发环境
Nodejs处理get请求
const http = require('http');
// querystring从字面上的意思就是查询字符串
const querystring = require('querystring');
const server = http.createServer((req,resp)=>{
console.log('method'+req.method);
console.log('url'+req.url);
req.query = querystring.parse(req.url.split('?')[1]);
// req.query2 = querystring.parse(req.url.split('?')[1]);
console.log('query',req.query);
resp.end(
JSON.stringify(req.query)
);
})
//启动一个服务器来监听连接。
server.listen(8080);
querystring从字面上的意思就是查询字符串,一般是对http请求所带的数据进行解析。querystring模块只提供4个方法,在我看来,这4个方法是相对应的。
这4个方法分别是
querystring.stringify序列化;
querystring.parse反序列化;
querystring.escape编码;
querystring.unescape解码;
http.response.end的方法说明、语法、接收参数、使用实例和实现源码,需要的朋友可以参考下
方法说明:
结束响应,告诉客户端所有消息已经发送。当所有要返回的内容发送完毕时,该函数必须被调用一次。
如何不调用该函数,客户端将永远处于等待状态。
语法:
response.end([data], [encoding])
接收参数:
data : end()执行完毕后要输出的字符,如果指定了 data 的值,那就意味着在执行完 response.end() 之后,会接着执行一条 response.write(data , encoding);
encoding: 对应data的字符编码
Nodejs处理post请求
const http = require('http');
let server = http.createServer((req,resp)=>{
if(req.method == 'POST'){
console.log(req.method);
console.log('req content-type',req.headers['content-type']);
//接受数据
let postData = '';
req.on('data',chunk=>{
//chunk本身是二进制形式
postData += chunk.toString();
});
req.on('end',()=>{
console.log('postdata',postData);
resp.end('hello world');
});
}
});
server.listen(8080);
以上修改为get方式传递后如下:
并没有监听到数据
Req.on(data)可能是post专用方法
Get可使用req.url方法
1nodejs用req.on(data)接收客户端的数据//浏览器来数据时触发
2在HTTP协议消息头中,使用Content-Type来表示请求和响应中的媒体类型信息。它用来告诉服务端如何处理请求的数据,以及告诉客户端(一般是浏览器)如何解析响应的数据,比如显示图片,解析并展示html等等。
常见的Content-Type有数百个,下面例举了一些
HTML文档标记:text/html;
普通ASCII文档标记:text/html;
JPEG图片标记:image/jpeg;
GIF图片标记:image/gif;
js文档标记:application/javascript;
xml文件标记:application/xml;
//设置返回格式会json
resp.setHeader('Content-type','application/json');
搭建开发环境
- npm init
bin文件夹一般是可执行文件
2.新建www.js文件
3、新建处理函数
4、//引入写好的www.js文件
5.结果
1、安装nodemon cross-env代码更新后重新运行
d:\DEMO\node\blog>npm install nodemon cross-env --save-dev
2、cross-env设置环境变量兼容环境
通过cross-env设置当前环境,从而更改相应配置
3如何取设置的变量
process 对象是一个全局变量,它提供有关当前 Node.js 进程的信息并对其进行控制。 作为一个全局变量,它始终可供 Node.js 应用程序使用,无需使用 require()。
结果
4.npm run dev 运行