项目知识——“Node.js 让 JavaScript 摆脱了只能运行在浏览器中的限制

HTTP 服务器是什么?

HTTP 服务器 就是一个持续运行的程序,它:

  1. 监听网络端口(通常是 80 或 443)

  2. 接收浏览器发来的 HTTP 请求(如访问网页、提交表单)

  3. 处理请求(读取文件、查询数据库等)

  4. 返回 HTTP 响应(HTML、JSON、图片等)

简单说,它就像餐厅里的服务员:随时待命,顾客(浏览器)点餐(发请求),服务员向后厨(服务器资源)下单,最后把菜(响应内容)端上桌。


JavaScript 的"困境":为什么原来只能在浏览器跑?

浏览器中的 JavaScript 就像被关在一个沙盒监狱里:

  • 能做的事 :操作网页内容(DOM)、发网络请求(Ajax)、用浏览器提供的 API(如 localStorage)

  • 绝对不能做的事 :直接读写本地文件、监听网络端口、创建进程等系统级操作

因为浏览器为了安全,严格限制了它的权限。JavaScript 解释器(如 V8)是嵌在浏览器里的,离开浏览器这个宿主环境,代码就无法执行。


Node.js 的破局:把 JavaScript"搬到"服务器

Node.js 做了两件革命性的事:

  1. 把 V8 引擎从浏览器里"抠"出来

Node.js 直接把 Chrome 的 V8 引擎(JavaScript 解释器)独立打包 ,让它能在操作系统上直接运行,不再依赖浏览器。

  1. 给 JavaScript 装上"手脚"(系统 API)

Node.js 提供了一套C++ 编写的底层模块 (如 fs、http、net),把操作系统的文件、网络、进程等能力封装成 JavaScript 函数。

javascript 复制代码
// 在服务器上监听 3000 端口(以前绝对做不到!)
const http = require('http');
const fs = require('fs');

http.createServer((req, res) => {
  // 直接读写服务器硬盘文件
  const content = fs.readFileSync('./index.html');
  res.end(content);
}).listen(3000);

本质区别

维度 浏览器 JavaScript Node.js JavaScript
宿主环境 浏览器 操作系统
权限 沙盒限制,只有 Web API 完整系统权限,可直接操作硬件资源
用途 操纵网页、用户交互 构建服务器、CLI 工具、桌面应用
全局对象 window global

Node.js 不是新语言,它只是给 JavaScript 换了个"操作系统级"的运行环境,让它从"网页脚本"变成了"通用编程语言",所以原来只能在浏览器跑的代码,现在能直接在服务器上监听端口、处理请求了。

相关推荐
MasonYyp17 小时前
安装npm依赖仓库Verdaccio
前端·npm·node.js
编程的一拳超人2 天前
【元宝搜索开发者征文大赛】四语实战:Java/Python/Go/Node.js 构建 AI 搜索应用全攻略
java·python·golang·node.js·agent
lucas_AI2 天前
今年 2 月就修好的漏洞,10 月才炸:HTTP2Shell 把 Node、Python 一锅端
node.js
SEO_juper3 天前
Node.js 全站死链检测工具:从 sitemap 出发一次找全 404
开发语言·人工智能·python·node.js·seo·外贸独立站
孟陬4 天前
解决动态 import 类型 Any 痼癖
typescript·node.js·bun
Dumbness4 天前
后台管理员把自己锁在门外:RBAC 里「自己的权限只能由别人来减」
安全·node.js
攻城狮白玉4 天前
Node.js 发布紧急安全更新:10 个漏洞,8 枚危险证书被拉黑。附AI修复提示词
node.js
Json____4 天前
用 FastAPI + Vue3 打造一套完整的在线考试系统:从组卷到阅卷的业务闭环实践
后端·node.js·fastapi·it学习·wwwoop.com
Dumbness5 天前
写 MCP 服务器踩的坑:stdout 是协议通道,一行不带换行的日志就能让客户端超时
node.js·mcp
flash俊杰5 天前
ContentPart 联合类型实战:不碰存量消息,怎么给 ChatMessage 加图片
node.js