node 的安装及使用

278 阅读4分钟

前言

Node.js 是一个开源和跨平台的 JavaScript 运行时环境,是一个以 JavaScript 为基础编写的服务器端平台。它的强大工具生态系统是构建在 npm 包管理器之上,这使得 Node.js 可以轻松地实现各种功能。

安装

首先下载 node 安装,可以选择安装最新版本,或者想安装以往的版本也行

打开网站,下滑到下面,选择 Previous Releases(以往版本)

image.png

查看想要的版本 image.png

然后根据自己的系统选择对应的安装包,注意安装路径不要有中文,下载完成后,一直点 next 下一步就安装完成了。

image.png

可以打开终端输入 npm -v,出现版本号就表示安装成功了

环境变量

安装完成后就需要配置环境变量了

  • 去到系统设置,选择高级系统设置
  • 点击环境变量
  • 选中系统变量中的 Path 进行编辑
  • 添加刚刚安装包对应的安装目录

image.png

然后我们可以去设置由 npm 下载和缓存存放的文件位置

新建 node_cache(缓存文件夹) 和 node_global(下载文件夹) 文件

image.png

输入命令,设置所创建文件夹的路径

npm config set cache "D:\node\node_cache"
npm config set prefix "D:\node\node_global"

然后可以输入 npm config get cachenpm config get prefix 来查看是否成功修改路径

image.png

接下来是修改用户的环境变量,修改 C:\Users\Administrator\AppData\Roaming\npm 这一行为刚刚新建 node_global 文件夹所在路径

image.png

新建系统环境变量 NODE_PATH

image.png

使用

新建一个 test.js 文件,使用 node 运行这个文件可以看到 console 打印出的文字

image.png

http 模块

Node.js 内置了 HTTP 模块,求可以引入 http 模块来开启服务,实现 http 的请求

//引入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 得到如下,表示运行成功

image.png

在浏览器输入 http://127.0.0.1:8088/ 可以看到

image.png

为什么开启的是 124.0.0.1 这个 IP 呢?在平时开发使用 localhost 的看,实质上就是指向 127.0.0.1 这个本地IP地址。在操作系统中有个配置文件将 localhost 与 127.0.0.1 绑定在了一起。可以理解为本地主机的意思。

我们可以通过 listen 中传递第二参数,像我现在电脑连接的wifi,现ip 地址是 192.168.0.130,也可以运行成功

.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 模块解析地址中拼接的参数

image.png

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) 获得出来的数据如下

image.png

页面展示出如下,这样就可以获取到地址参数并展示到页面中

image.png

new URL 获取请求 url 相关信息也可以使用实例化 URL 对象

let url = new URL(request.url, 'http://127.0.0.1');
console.log(url);

image.png

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等对象,能够作为服务端,快速创建网络应用程序。