前言
Node.js 是一个开源和跨平台的 JavaScript 运行时环境,是一个以 JavaScript 为基础编写的服务器端平台。它的强大工具生态系统是构建在 npm 包管理器之上,这使得 Node.js 可以轻松地实现各种功能。
安装
首先下载 node 安装,可以选择安装最新版本,或者想安装以往的版本也行
打开网站,下滑到下面,选择 Previous Releases(以往版本)
查看想要的版本
然后根据自己的系统选择对应的安装包,注意安装路径不要有中文,下载完成后,一直点 next 下一步就安装完成了。
可以打开终端输入 npm -v,出现版本号就表示安装成功了
环境变量
安装完成后就需要配置环境变量了
- 去到系统设置,选择高级系统设置
- 点击环境变量
- 选中系统变量中的 Path 进行编辑
- 添加刚刚安装包对应的安装目录
然后我们可以去设置由 npm 下载和缓存存放的文件位置
新建 node_cache(缓存文件夹) 和 node_global(下载文件夹) 文件
输入命令,设置所创建文件夹的路径
js
npm config set cache "D:\node\node_cache"
npm config set prefix "D:\node\node_global"
然后可以输入 npm config get cache
和 npm config get prefix
来查看是否成功修改路径
接下来是修改用户的环境变量,修改 C:\Users\Administrator\AppData\Roaming\npm
这一行为刚刚新建 node_global 文件夹所在路径
新建系统环境变量 NODE_PATH
使用
新建一个 test.js 文件,使用 node 运行这个文件可以看到 console 打印出的文字
http 模块
Node.js 内置了 HTTP 模块,求可以引入 http 模块来开启服务,实现 http 的请求
js
//引入http模块
var http = require('http');
/**
* request: 接收客户端的请求信息
* response: 响应给客户端的信息
*/
http.createServer(function (request, response) {
/**
* 设置请求头信息 writeHead
* 参数
* code 状态码: 200
* headers 信息: Content-Type
*/
response.writeHead(200, {'Content-Type': 'text/plain;charset=utf8'});
//写入信息
response.write('Hello World\n');
//请求结束
response.end('end');
})
//请求监听端口 8088
.listen(8088);
console.log('Server running at http://127.0.0.1:8088/');
运行 node test.js 得到如下,表示运行成功
在浏览器输入 http://127.0.0.1:8088/ 可以看到
为什么开启的是 124.0.0.1 这个 IP 呢?在平时开发使用 localhost 的看,实质上就是指向 127.0.0.1 这个本地IP地址。在操作系统中有个配置文件将 localhost 与 127.0.0.1 绑定在了一起。可以理解为本地主机的意思。
我们可以通过 listen 中传递第二参数,像我现在电脑连接的wifi,现ip 地址是 192.168.0.130,也可以运行成功
js
.listen(8088, '192.168.0.130');
当在 http://192.168.0.130:8088/?name=xiaoming&age=18 后面拼接参数,可以在 request
参数接收到
打印 request.url
得到 /?name=xiaoming&age=18
url 模块
可以利用 url 模块解析地址中拼接的参数
js
var http = require('http');
//引入 url 模块
var url = require('url');
http.createServer(function (request, response) {
response.writeHead(200, {'Content-Type': 'text/plain;charset=utf8'});
if(request.url != '/favicon.ico') { // 这里是排除 response.end('end'); 输出结果
// parse() 将 request.url 字符串解析成对象
let queryData = url.parse(request.url, true).query
//写入信息
response.write(`我叫${queryData.name},年龄${queryData.age}岁\n`);
}
//请求结束
response.end('end');
}).listen(8088);
console.log('Server running at http://127.0.0.1:8088/');
其中url.parse(request.url, true)
获得出来的数据如下
页面展示出如下,这样就可以获取到地址参数并展示到页面中
new URL 获取请求 url 相关信息也可以使用实例化 URL 对象
js
let url = new URL(request.url, 'http://127.0.0.1');
console.log(url);
js
let url = new URL(request.url, 'http://127.0.0.1');
// 调用 searchParams.get 来获取参数
console.log(url.searchParams.get('name'))
console.log(url.searchParams.get('age'))
request
创建 createServer
服务传递的第一个形参 request
有以下字段获取相关信息
- request.method,请求的方法
- request.url,请求的 url 路径
- request.headers,请求头
response
创建 createServer
服务传递的第二个形参 response
可以进行设置响应的信息
- response.statusCode = 200,设置状态码
- response.statusMessage = 'success',设置状态信息
- response.setHeader('content-type', 'text/html;charset=utf-8'),设置请求头
总结
JavaScript 是一门脚本语言,HTML 文件中的 Js 代码是由浏览器解析执行的,而 Js 文件的执行可以由 Node.js 来解析运行,可以在非浏览器环境中运行 JS 代码,并且它支持前后端的 js 编程,因为它内置了 fs、http等对象,能够作为服务端,快速创建网络应用程序。