Nodejs基础

本文介绍了NodeJS的基础知识,包括NodeJS是什么、如何安装,以及它与浏览器环境的主要区别,如全局对象、this指向和API的不同。详细探讨了NodeJS中的全局变量`global`、模块系统,特别是`exports`和`require`的使用。此外,还讲解了模块的特点和导出数据的三种方式。最后,提到了包管理工具如nrm和cnpm在国内开发中的应用,帮助加速npm资源的下载。
摘要由CSDN通过智能技术生成

NodeJS基础

1.什么是nodejs

Node.js 是一个基于"Chrome V8 引擎" 的JavaScript “运行环境”

所以 NodeJS不是一门编程语言, NodeJS是一个运行环境,通过这些底层API我们可以编写出网页中无法实现的功能(诸如: 打包工具, 网站服务器等)

2.安装nodejs

教程

3.node环境和浏览器有什么不同

3.1内置对象不同

  • 浏览器环境中提供了window全局对象
  • NodeJS环境中的全局对象不叫window , 叫global

3.2this默认指向不同

  • 浏览器环境中全局this默认指向window
  • NodeJS环境中全局this默认指向空对象{}

3.3API不同

  • 浏览器环境中提供了操作节点的DOM相关API和操作浏览器的BOM相关API
  • NodeJS环境中没有HTML节点也没有浏览器, 所以NodeJS环境中没有DOM/BOM

4.了解global 全局变量的属性和方法

4.1 __dirname

  • 当前文件所在文件夹的绝对路径
    • 例子:d:\Desktop\1 Node代码资料.zip\Node

4.2 __filename

  • 当前文件的绝对路径
    • 例子:d:\Desktop\1 Node代码资料.zip\Node\05.js

4.3 exportsrequire

4.3.1 了解什么是模块

在浏览器开发中为了避免命名冲突, 方便维护等等

我们采用类或者立即执行函数的方式来封装JS代码, 来避免命名冲突和提升代码的维护性

其实这里的一个类或者一个立即执行函数就是浏览器开发中一个模块

但是存在一个问题:没有标准和规范导致会很乱.所以需要利用模块

4.3.2 模块特点
  • NodeJS采用CommonJS规范实现了模块系统
    • 规范中一个文件就是一个模块
    • 规范中每个文件中的变量函数都是私有的,对其他文件不可见的
    • 规范中每个文件中的变量函数必须通过exports暴露(导出)之后其它文件才可以使用
    • 规范中想要使用其它文件暴露的变量函数必须通过require()导入模块才可以使用

例子:

a.js

let name = "yay";

function sum(a, b) {
    return a + b;
}

exports.str = name;
exports.fn = sum;

b.js

let aModule = require("./a");
console.log(aModule);
console.log(aModule.str);
let res = aModule.fn(10, 20);
console.log(res);

自己运行试试

4.3.3 导出数据三种方式
  • 通过exports.xxx = xxx导出
  • 通过module.exports.xxx = xxx导出
  • 通过global.xxx = xxx导出(不推荐)

无论通过哪种方式导出, 使用时都需要先导入(require)才能使用

第一种和第二种方式的区别(仅仅了解)

exports只能通过 exports.xxx方式导出数据, 不能直接赋值exports=xxx

module.exports既可以通过module.exports.xxx方式导出数据, 也可以直接赋值module.exports=xxx

4.4require

  • require 导入模块时可以不添加导入模块的类型
    • 如果没有指定导入模块的类型, 那么会依次查找.js .json .node 文件
    • 无论是三种类型中的哪一种, 导入之后都会转换成JS对象返回给我们
  • 导入自定义模块时必须指定路径
  • 导入"系统模块"和"第三方模块"是不用添加路径
    • 原因:
      • 如果是"系统模块"直接到环境变量配置的路径中查找
      • 如果是"第三方模块"会按照module.paths数组中的路径依次查找

注意点:

例如:setInterval / clearIntervalsetTimeout / clearTimeout 等方法都是和windows 是一样的,该怎么用就怎么用

5.包使用

1.什么是nrm?

由于npm默认回去国外下载资源, 所以对于国内开发者来说下载会比较慢

所以就有人写了一个nrm工具, 允许你将资源下载地址从国外切换到国内

npm install -g nrm 安装NRM

nrm --version 查看是否安装成功

nrm ls 查看允许切换的资源地址

nrm use taobao 将下载地址切换到淘宝

PS:淘宝资源地址和国外的地址内容完全同步,。淘宝镜像与官方同步频率目前为 10分钟 一次以保证尽量与官方服务同步

image-20210215100035341

2.什么是cnpm?

由于npm默认回去国外下载资源, 所以对于国内开发者来说下载会比较慢

cnpm 就是将下载源从国外切换到国内下载, 只不过是将所有的指令从npm变为cnpm而已

npm install cnpm -g –registry=https://registry.npm.taobao.org 安装CNPM

cnpm -v 查看是否安装成功

image-20210215095741789

使用方式同npm, 例如: npm install jquery 变成cnpm install jquery 即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值