场景
如果我们编写后端的代码时,需要Apache 或者Nginx 的HTTP 服务器,
来处理客户端的请求相应。不过对Node.js 来说,概念完全不一样了。使用Node.js 时,
我们不仅仅在实现一个应用,同时还实现了整个HTTP 服务器。
注:
博客:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。
实现
有了node,我们任何一个js 文件,都可以通过node 来运行。也就是说,node 就是一个js 的执行环境。
Node.js 中,将很多的功能,划分为了一个个module(模块)。Node.js 中的很多功能都是通过模块实现。
HTTP模块的使用
首先新建一个目录,再次目录下新建app.js
const http = require('http'); /* req 获取客户端传过来的信息 res 给浏览器响应信息 */ http.createServer((req,res)= >{ console.log(req.url); //获取url //设置响应头 //状态码是 200,文件类型是 html,字符集是 utf-8 res.writeHead(200,{"Content-type":"text/html;charset='utf-8'"}); //解决乱码 res.write("<head> <meta charset='UTF-8'></head>"); //解决乱码 res.write('公众号:霸道的程序猿'); res.write('<h2>公众号:霸道的程序猿</h2>'); res.end(); //结束响应 }).listen(3000);
然后在此目录下打开cmd
node app.js
这样一个简单的http创建web服务就实现了。
打开浏览器,输入
URL模块的使用
首先通过
const url=require('url');
引入url模块
url.parse
解析url
怎样获取请求的参数
在目录下新建url.js
const url=require('url'); var api='https://blog.csdn.net/BADAO_LIUMANG_QIZHI?name=zhangsan&age=20'; console.log(url.parse(api,true)); var getValue=url.parse(api,true).query; console.log(getValue); console.log(`姓名:${getValue.name}--年龄:${getValue.age}`);
然后在终端中输入
node url.js
Http模块与URL模块结合使用
在目录下新建httpUrl.js
const http =require('http'); const url =require('url'); /* req 获取客户端传过来的信息 res 给浏览器响应信息 */ http.createServer((req,res)=>{ //http://localhost:3000/?name=badao&age=24 想获取url传过来的name 和age //设置响应头 //状态码是 200,文件类型是 html,字符集是 utf-8 res.writeHead(200,{"Content-type":"text/html;charset='utf-8'"}); //解决乱码 res.write("<head> <meta charset='UTF-8'></head>"); //解决乱码 console.log(req.url); //获取浏览器访问的地址 if(req.url!='/favicon.ico'){ var userinfo=url.parse(req.url,true).query; console.log(`姓名:${userinfo.name}--年龄:${userinfo.age}`); } res.end('你好nodejs'); //结束响应 }).listen(3000);
然后打开终端输入:
node httpUrl.js
打开浏览器输入: