NodeJs安装使用以及Http、Url模块使用
1、NodeJs安装
可以直接访问NodeJs
的网站下载最新的安装包,直接进行安装。
NodeJs官方网站: https://nodejs.org/en/
NodeJs中文网站: http://nodejs.cn/
这边包含了最新版本和稳定版,自行选择安装即可。
安装完成之后,输入命令
> node -v
或者
> npm -v
查看命令是否可用。如果正常输出版本,即表明安装没有问题。
2、npm和node常用命令
npm 常用命令
> # 输出npm当前版本
> npm -v
> # 升级当前的npm
> npm install -g npm
> # 安装局部模块
> npm install
> # 安装全局模块
> npm install -g xxx
> # 执行脚本命令
> npm run xxx
> # 查看当前所有命令信息
> npm -l
> ...
node 常用命令
> # 执行js文件
> node xxx.js
3、Nodejs中http
模块
开发推荐直接使用VSCode
进行开发。推荐安装插件模块node-snippets
。
这里直接创建一个js
文件。输入node
之后,会自动提示http-http-server
,选中回车之后,即可出现如下的快速创建的http
请求代码。😄,默认是没有提供注释了,为了理解方便,我这里加入了注释。
//引入http模块
var http = require('http');
/**
* request: 服务器请求获取信息,从这里可以获取到从用户端输入的参数等信息
* response: 服务器响应信息,这里可以设置回传给用户的信息
*/
http.createServer(function (request, response) {
/**
* 设置请求头信息
* code(statusCode): 200
* headers信息: Content-Type
*/
response.writeHead(200, {'Content-Type': 'text/plain;charset=utf8'});
//设置回传信息
response.write('Hello World');
//告诉用户端请求结束
response.end();
})
//请求监听端口8081
.listen(8081);
console.log('Server running at http://127.0.0.1:8081/');
运行代码
> node .\nodejs_http.js
运行之后,可以看到日志输出
Server running at http://127.0.0.1:8081/
直接浏览器访问,即可看到输出
上面只是一个很最简单的请求返回,真实使用中,肯定是要有参数传递,然后返回的。下面看一下如何传递参数和接收参数。
还是上面的例子,最简单直接get请求,参数拼接上去一个?username=zhangsan&age=22
。
http://127.0.0.1:8081/?username=zhangsan&age=22
前面有说过,request
参数是用来获取从用户端获取参数的,我们先打印看一下。
console.log(request.url)
//日志输出
/?username=zhangsan&age=21
可以看到请求参数都正常的输出出来了。下面就是要解析拿到参数,参数解析需要用户另一个模块了url
。
4、nodejs的url
模块
首先引入url
模块
//直接放置在上面引入http模块下面即可
var url = require('url');
刚才打印request.url
的下面加入一行,输出一下url.parse
console.log(url.parse(request.url, true)) //这里为true,表示将parseQueryString=true,
//将querystring解析成对象。
下面看一下打印信息,重点关注querystring
即可 。
Url {
protocol: null,
slashes: null,
auth: null,
host: null,
port: null,
hostname: null,
hash: null,
search: '?username=zhangsan&age=21',
//***重点关心这里
query: [Object: null prototype] { username: 'zhangsan', age: '21' },
pathname: '/',
path: '/?username=zhangsan&age=21',
href: '/?username=zhangsan&age=21'
}
我们再次将文件做一个修改,这次将接收到的username
和age
从request
中解析出来,并且以json
的形式返回给用户端,目前设计都是前后端分离的开发方式,所以直接返回一个接口形式比较常见,我们这里模拟返回接口形式。
//因为正常请求会请求两次,一次是正常请求,一次是favicon.icon,所以这里过滤掉
if(request.url != '/favicon.ico'){
//使用url.parse解析出来请求的querystring,设置为true,
//表示将querystring直接转换为json对象
let queryUrl = url.parse(request.url, true).query
//这里构造出来一个json返回值
let responseResult = {
code: 0,
message: '请求成功',
data: {
username: queryUrl.username,
age: queryUrl.age
}
}
//设置回传信息,这里将结果以json的形式返回到用户端
response.write(JSON.stringify(responseResult));
}
再次刷新浏览器,看一下浏览器输出
至此,一个简单的请求,并返回数据操作完成了。