博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Nodejs基础
阅读量:3968 次
发布时间:2019-05-24

本文共 2157 字,大约阅读时间需要 7 分钟。

文章目录

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 即可

转载地址:http://hxdki.baihongyu.com/

你可能感兴趣的文章
synchronized(this)的意思是:
查看>>
synchronized(this)的意思是:
查看>>
Android USB 驱动分析
查看>>
Android Sensor传感器系统架构初探
查看>>
Android Sensor传感器系统架构初探
查看>>
Sensor传感器源码的阅读与应用开发…
查看>>
Sensor传感器源码的阅读与应用开发…
查看>>
Android传感器编程入门
查看>>
Android传感器编程入门
查看>>
Android的传感器HAL层的书写---基…
查看>>
Linux下android内核编译
查看>>
emulator使用方法
查看>>
emulator使用方法
查看>>
C 语言 undefined reference to 's…
查看>>
动态链接库
查看>>
工作队列的初始化(INIT_WORK的参…
查看>>
生成和使用动态链接库和静态链接库…
查看>>
linux工作队列(转)
查看>>
工作队列的初始化(INIT_WORK的参…
查看>>
sysfs and /proc/bus/usb/device
查看>>