node 的安装及使用

前言

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

相关推荐
亿元程序员6 分钟前
为什么大家都那么喜欢用Shader?
前端
Codebee8 分钟前
OODER Studio设计工具导入体系深度解析
前端
weedsfly12 分钟前
前端开发中的命令模式——从点餐退单到异步任务调度
前端·javascript·面试
慢功夫12 分钟前
💡第四篇:编辑器内核, Monaco model、URI、dirty 状态和 tabs 是怎么协作的?
前端·visual studio code
小马过河R15 分钟前
微前端实践:从概念、原理到 qiankun 落地
前端·人工智能·前端框架
用户0595401744622 分钟前
AI记忆存储一致性踩坑实录:每天手工回归200条对话,直到我用pytest+Redis搭建自动化验证
前端·css
weedsfly23 分钟前
前端中的适配器模式 vs 外观模式
前端·javascript·面试
图扑软件24 分钟前
其域创新 × 图扑软件|3DGS 高斯泼溅智慧钢厂实景孪生
前端·低代码·3d·编辑器·图形渲染·可视化
labixiong26 分钟前
写给前端的 Generator 指南:从 yield 到 async/await 的完整进化
前端·javascript·前端框架
asdzx6727 分钟前
使用 Spire.WordJS 在 React 中实现在线 Word 文档编辑
前端·react.js·word