Node.js | 青训营笔记

101 阅读2分钟

这是我参与「第五届青训营 」笔记创作活动的第10天。

介绍

Node.js 在其标准库中提供了一组异步的 I/O 原语,以防止 JavaScript 代码阻塞,库是使用非阻塞范式编写的,使得阻塞行为成为异常而不是常态。执行 I/O 操作时,Node.js 将在响应返回时恢复操作(而不是阻塞线程和浪费 CPU 周期等待)。得以处理数千个并发连接,npm引入库更加方便。使用一种语言编写所有东西(前端和后端)的舒适性。

学习前的基础知识

异步编程和回调nodejs.cn/learn/javas…

定时器nodejs.cn/learn/disco…

Promise nodejs.cn/learn/under…

异步和等待nodejs.cn/learn/moder…

事件循环nodejs.cn/learn/the-n…

闭包

入门教程

安装之后,node app.js 运行你的程序

退出代码 nodejs.cn/api/process…

REPL 也被称为运行评估打印循环,是一种编程语言环境(主要是控制台窗口),它使用单个表达式作为用户输入,并在执行后将结果返回到控制台。

我们可以通过REPL来了解一些js类的属性和方法

尝试输入 JavaScript 类的名称,例如 Number,添加一个点号并按下 tab。

全局变量

通过输入 global. 并按下 tab,可以检查可以访问的全局变量:

%s 会格式化变量为字符串 %d 会格式化变量为数字 %i 会格式化变量为其整数部分 %o 会格式化变量为对象

清空控制台 console.clear() 会清除控制台(其行为可能取决于所使用的控制台)。

元素计数 console.count() 是一个便利的方法。

打印堆栈踪迹 在某些情况下,打印函数的调用堆栈踪迹很有用,可以使用 console.trace() 实现

计算耗时 可以使用 time() 和 timeEnd() 轻松地计算函数运行所需的时间

创建进度条 Progress 是一个很棒的软件包,可在控制台中创建进度条。 使用 npm install progress 进行安装。 以下代码段会创建一个 10 步的进度条,每 100 毫秒完成一步。 当进度条结束时,则清除定时器:


const bar = new ProgressBar(':bar', { total: 10 })
const timer = setInterval(() => {
  bar.tick()
  if (bar.complete) {
    clearInterval(timer)
  }
}, 100)

模块功能

Node.js 文件可以导入其他 Node.js 文件公开的功能。

导入:const library = require('./library')但是只能导入公开文件,这个时候可以使用两种方式来把文件导出

第一种方式是将对象赋值给 module.exports(这是模块系统提供的对象),这会使文件只导出该对象:

  brand: 'Ford',
  model: 'Fiesta'
}
module.exports = car
//在另一个文件中
const car = require('./car')

第二种方式是将要导出的对象添加为 exports 的属性。这种方式可以导出多个对象、函数或数据:

exports.car = {
  brand: 'Ford',
  model: 'Fiesta'
}

module.exports 和 export 之间有什么区别?

前者公开了它指向的对象。 后者公开了它指向的对象的属性。