nodejs -- 个人学习笔记

171 阅读5分钟

nodej环境配置

下载

在 Node官网 上,下载对应的安装包

官网地址
nodejsNode.js官网下载地址

点击安装文件,开始安装 node.js

创建文件夹"D:\node"

安装地址选择"D:\node"中

Node.js环境变量配置

在上面已经完成了 node.js 的安装

但是,若不进行环境变量配置,那么在使用命令安装 node.js全局模块 (如:npm install -g vue)时,会默认安装到C盘的路径 (C:\Users\zs\AppData\Roaming\npm) 中

需要配置 全局安装模块 node_global 以及 缓存目录 node_cache 的环境变量;

AppData文件夹一般是隐藏的,如要在查看查看

在node.js的安装目录中,新建两个文件夹 node_global 和 node_cache,分别用来存放安装的全局模块和全局缓存信息

创建完两个文件夹后,在cmd窗口中输入以下命令(两个路径即是两个文件夹的路径):

设置全局模块安装路径

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

设置全局缓存存放路径

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

命令执行,效果如图:

设置电脑环境变量,环境变量界面打开顺序:右键 “我的电脑”=》属性=》高级系统设置=》环境变量 ,具体实行过程

进入环境变量对话框,在【系统变量】中新建环境变量 NODE_PATH,值为

D:\node\node_global\node_modules

其中 D:\node\node_global 是新创建的全局模块安装路径

修改【用户变量】中的 path 变量,将

C:\Users\zs\AppData\Roaming\npm 

修改为

D:\node\node_global

点击确定后,配置完成。

查看node和npm版本:

node -v
npm -v

查看当前的镜像源

npm config get registry

国内镜像网站配置

使用淘宝镜像源加速 NPM

 npm config set registry https://registry.npmmirror.com

使用阿里云 镜像源加速 NPM

npm config set registry https://npm.aliyun.com

使用腾讯云镜像源加速 NPM

npm config set registry http://mirrors.cloud.tencent.com/npm/

使用华为云 镜像源加速 NPM

npm config set registry https://mirrors.huaweicloud.com/repository/npm/

返回npm 官方原始镜像

npm config set registry https://registry.npmjs.org/

使用nvm切换工具

nvm 是一个node的版本管理工具

nvm ls                ## 查看已安装的所有node版本
nvm install node      ## 安装最新版本
nvm install version   ## 安装指定版本
nvm use version       ## 使用指定版本
nvm current           ## 查看当前版本

使用 npm 全局安装 nrm

  npm install nrm -g

通过 nrm ls 命令,查看npm的仓库列表,带 * 的就是当前选中的镜像仓库:

  nrm ls

通过 nrm use taobao 来指定要使用的镜像源:

  nrm use taobao

最后,通过 nrm test npm 来测试速度:

  nrm test npm

升级npm

当只需要简单的升级 npm 的时候,可以比较方便的处理。

npm升级到最新版本

npm install npm -g
npm install npm@10.5 -g

查看全局的软件包

不知道安装到了什么位置,可以使用命令 npm root -g 进行查询

npm root -g

清除npm缓存:

npm cache clean -f

模块系统

export

export 关键字允许你从模块中导出多个成员(变量、函数、类等),并为每个成员指定一个名称。其他模块可以通过名称来导入这些成员。这种导出方式被称为命名导出(named export)。

导出变量或常量:

// myModule.js  
export const myVariable = 'Hello, World!';  
export let myLetVariable = 42;
// mathUtils.js  
export function add(a, b) {  
  return a + b;  
}

导出类:

// Person.js  
export class Person {  
  constructor(name, age) {  
    this.name = name;  
    this.age = age;  
  }  
}

导入

需要使用花括号({})来指定要导入的成员名称:

// main.js  
import { myVariable, add } from './myModule.js';  
import { Person } from './Person.js';  
  
console.log(myVariable); // 输出 'Hello, World!'  
console.log(add(2, 3)); // 输出 5  
const person = new Person('Alice', 30);
export default

export default

允许你导出一个模块的默认成员。每个模块只能有一个默认导出。导入默认导出时,不需要使用花括号,而是直接使用 import 关键字和模块名称。

导出函数作为默认成员:

// myFunction.js  
export default function() {  
  console.log('This is the default export!');  
}

导出类作为默认成员:

// MyClass.js  
export default class MyClass {  
  constructor() {  
    // ...  
  }  
}

导入

在导入时,可以直接使用模块名称作为变量名,或者为默认导出指定一个名称:

// main.js  
import myFunction from './myFunction.js';  
import MyClass from './MyClass.js';  
  
myFunction(); // 输出 'This is the default export!'  
const instance = new MyClass();
module.exports

module.exports

module.exports 是 CommonJS 模块系统(主要在 Node.js 中使用)的一部分,用于导出整个模块的内容或一个特定的对象或函数。在 CommonJS 中,每个文件都被视为一个模块,并且 module 对象代表当前模块。exports 对象实际上是 module.exports 的一个引用,但通常直接使用 module.exports 来导出内容。

导出单个对象或函数:

// myModule.js  
function myFunction() {  
  // ...  
}  
  
module.exports = myFunction;

导出多个属性组成的对象:

// myModule.js  
const myVariable = 'Hello';  
function myFunction() {  
  // ...  
}  
  
module.exports = {  
  myVariable,  
  myFunction  
};

导入

在导入时,使用 require 函数:

// main.js  
const myFunction = require('./myModule.js');  
const { myVariable, myFunction } = require('./myModule.js');  
  
myFunction();  
console.log(myVariable);

总结

  1. export 和 export default 是 ES6 模块系统的一部分,用于浏览器和现代 Node.js 环境的模块导出。它们提供了命名导出和默认导出的方式,使得模块成员可以按需导入。
  2. module.exports 是 CommonJS 模块系统的一部分,主要在早期的 Node.js 中使用。它允许你导出整个模块的内容或一个特定的对象或函数。
  3. 在现代的 JavaScript 开发中,尤其是在前端开发中,推荐使用 ES6 模块系统。然而,在 Node.js 中,由于历史原因和生态系统的支持,CommonJS 仍然被广泛使用

在线接口

https://jsonplaceholder.typicode.com/todos