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

相关推荐
foxhuli22932 分钟前
禁止ifrmare标签上的文件,实现自动下载功能,并且隐藏工具栏
前端
青皮桔1 小时前
CSS实现百分比水柱图
前端·css
影子信息1 小时前
vue 前端动态导入文件 import.meta.glob
前端·javascript·vue.js
青阳流月1 小时前
1.vue权衡的艺术
前端·vue.js·开源
样子20181 小时前
Vue3 之dialog弹框简单制作
前端·javascript·vue.js·前端框架·ecmascript
kevin_水滴石穿1 小时前
Vue 中报错 TypeError: crypto$2.getRandomValues is not a function
前端·javascript·vue.js
孤水寒月2 小时前
给自己网站增加一个免费的AI助手,纯HTML
前端·人工智能·html
CoderLiu2 小时前
用这个MCP,只给大模型一个figma链接就能直接导出图片,还能自动压缩上传?
前端·llm·mcp
伍哥的传说2 小时前
鸿蒙系统(HarmonyOS)应用开发之实现电子签名效果
开发语言·前端·华为·harmonyos·鸿蒙·鸿蒙系统
海的诗篇_3 小时前
前端开发面试题总结-原生小程序部分
前端·javascript·面试·小程序·vue·html