Menu
CoddyTech

你的第一个模块

本课属于 Coddy Node.js 学习旅程的“Node.js 基础”单元。第 7 课,共 33 课。

notes.js 越来越长了,而且不止一个地方需要格式化笔记的代码。

模块就是一个文件。在函数前加上 export,其他文件就能使用它;import { name } from './file.js' 则会将它导入:

// math.js
export function add(a, b) {
    return a + b;
}

// app.js
import { add } from './math.js';
console.log(add(2, 3));

如果没有 export,这个函数就只能在 math.js 中使用,导入也会失败。路径以 ./ 开头,表示同一个文件夹,并以 .js 结尾:Node 不会自动猜测扩展名。

challenge icon

挑战

简单

notes.js 越来越长了。把将笔记转换成带编号行的代码移到单独的文件 format.js 中,这样其他文件也能使用它。

  1. 在 format.js 中编写函数 formatNote(n, text) 并导出它。它会返回编号、句点、一个空格,然后是文本。formatNote(1, 'Buy milk') 会返回 '1. Buy milk',而 formatNote(3, 'Call Ada') 会返回 '3. Call Ada'。它会返回这一行,但不会打印这一行。
  2. 在 notes.js 中,在文件顶部从 ./format.js 导入 formatNote。
  3. 在 add 分支中,替换打印 Adding: ... 的那一行。现在,它会打印 Adding: ,后面接上 formatNote(1, text),也就是编号为 1 的笔记。目前每条笔记的编号都是 1;真正的编号会在下一课中实现。

node notes.js add Buy milk 会打印:

Adding: 1. Buy milk

试一试:在 $ node notes.js 后面的输入框中输入 add Buy milk,然后按 Enter。你会看到 Adding: 1. Buy milk。接着看看路径错误时 Node 会怎么提示:从 notes.js 的导入行中删除 .js,然后重新运行。程序会停止,并提示找不到模块 format。按“检查”之前,记得把 .js 加回去。

亲手试试

// formatNote(1, 'Buy milk') 应返回 '1. Buy milk'。
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

Node.js 基础中的所有课

自己练习: Express 在线编辑器