跳到正文

Node.js

中级通用

Node.js 是让 JavaScript 在浏览器之外运行的运行环境,不是一门新语言。它让你能用 JavaScript 编写网站后端、命令行工具等程序,例如接收用户请求、读取文件,再把结果返回给网页。

你可能会说:「我想用 JavaScript 写网站接口,接收表单数据后保存起来,不只是在浏览器里运行。」

读之前建议先了解

动手看看

查看订单浏览器等待结果Node.js收到请求订单文件尚未读取
1

用户点击「查看订单」,浏览器向服务器发出请求。网页负责交互,订单数据要由服务器提供。

要点

  1. 1

    它运行在浏览器之外

    浏览器里的 JavaScript 通常负责页面交互;Node.js 则可以在你的电脑或服务器上运行 JavaScript。因为运行位置不同,它能做的事也不同,比如读取服务器上的文件、启动一个接收请求的服务。

  2. 2

    它提供服务端常用能力

    做一个反馈表单时,你可以用 Node.js 接收网页提交的数据,再调用数据库或其他服务。网页不需要直接接触数据库账号,这样我们就能把数据校验和敏感配置留在服务端处理。

  3. 3

    项目通常还会用到包

    Node.js 提供运行环境,但不会替你写好整个产品。你可能会通过 npm 安装数据库驱动或后端框架,再用 Node.js 运行项目。看 AI 生成的代码时,可以分清哪些是 Node.js 的能力,哪些来自额外安装的包。

容易混淆的地方

JavaScript 是语言,Node.js 是运行 JavaScript 的环境;把 Node.js 称为编程语言,会让需求说偏。它也不是后端框架:框架可以帮你组织路由等代码,但仍需要运行环境。浏览器中的 JavaScript 和 Node.js 虽然使用同一门语言,却不能直接互换所有接口,比如网页的 DOM 不属于 Node.js。

什么时候用

适合用

  • 做网站后端接口:接收注册表单、校验输入,再把用户资料交给数据库保存。
  • 做命令行工具:批量整理图片文件名,或检查项目中的配置文件。
  • 做 AI 工具的服务端:保管 API 密钥,接收前端请求后调用模型服务。

不适合用

  • 只是给网页按钮添加点击反馈,不需要单独引入 Node.js;用浏览器中的 JavaScript 就能完成。
  • 只是发布已生成的静态页面,没有服务端逻辑时,可选静态网站托管,不必运行 Node.js 服务。
  • 团队已有稳定的 Python 后端,只需增加一个接口时,可以直接在现有后端实现,不必另起 Node.js 服务。

练一练

你在做一个 AI 问答网页:用户在页面输入问题,产品要用保密的 API 密钥调用模型服务。你会怎样安排 Node.js?

让 AI 帮你做

请用 Node.js 实现一个接收网页提问的服务端接口:从环境变量读取模型 API 密钥,在服务端调用模型,并将结果返回前端。请说明运行命令、所需依赖,以及前端如何请求该接口;不要把密钥写进前端代码。

接下来学什么