spring的技术笔记
学习Node基础第 2 / 23 篇2 分钟阅读

运行时与模块

运行时与模块

这节要解决什么

搞清楚:Node 怎么执行一个文件、模块怎么互相引用、命令行参数和环境变量从哪来。

先用大白话

浏览器里,JS 的「宿主」是浏览器(有 window、document)。
Node 里,宿主换成了服务器/本机进程(有 process、能读写文件、能开网络端口)。

模块就是「把代码拆成多个文件,互相 import」。
前端打包工具帮你拼;在 Node 里,运行时自己就能加载模块。

可以把它想成 Vue 的单文件组件互相 import:一个文件导出,另一个文件导入。

对着项目看

打开:projects/01-node-cli-notes

重点文件:

  • package.json 里的 "type": "module" → 告诉 Node 用 ESM
  • src/main.js → 程序入口,解析命令行
  • src/notes.js → 真正读写笔记的逻辑

试跑:

cd projects/01-node-cli-notes
npm start
# 或
node src/main.js list
node src/main.js add "第一天学 Node"
node src/main.js list

process.argv 里装的就是你在命令行敲的参数。
process.env 里是环境变量(后面接数据库、密钥都会用到)。

两个容易混的点

  1. CommonJS vs ESM
    • 老写法:require / module.exports
    • 新写法:import / export(本资料默认这个)
  2. node: 前缀
    import fs from 'node:fs' 和 import fs from 'fs' 都能用;带前缀更明确「这是 Node 内置」。

验收清单

  • 能用 node 某文件.js 跑起来
  • 知道 process.argv 是命令行参数
  • 能说清项目里哪个文件是入口、哪个是业务逻辑

下一节 → 02-异步与事件循环.md