步骤 2:前端(JS 调用后端接口)新建 index.html 文件,前端 JS 发起请求并渲染数据:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>JS 前后端一体 Demo</title>
</head>
<body>
<div id="result"></div>
<script>
// 前端 JS:调用后端接口(纯 JS 逻辑)
async function fetchData() {
try {
// 发起请求到后端接口
const response = await fetch('
http://localhost:3000/api/hello');
const data = await response.json();
// 前端渲染数据(操作 DOM,JS 核心能力)
document.getElementById('result').innerHTML = `
<p>后端返回消息:${data.message}</p>
<p>后端返回时间:${data.time}</p>
`;
} catch (error) {
console.error('请求失败:', error);
}
}
// 页面加载后执行
fetchData();
</script>
</body>
</html>
运行方式
终端执行 node server.js 启动后端服务 ym.miaoshou.net/hospital/526.html;
直接打开 index.html(前端页面),就能看到后端返回的数据。
整个过程中,后端逻辑(server.js)和前端逻辑(index.html 里的 script)全部用 JavaScript 编写,没有用到其他语言。三、JS 做全栈开发的核心优势 & 注意事项优势
语言统一:前后端都用 JS,无需切换语法 / 思维,降低学习和开发成本;
生态丰富:
前端:React/Vue/TypeScript/ES6+ 等;
后端:Express/Koa/NestJS/Prisma(数据库 ORM)等;
高效开发:可共享代码(比如前后端通用的校验规则、数据模型),减少重复开发;
就业优势:全栈 JS 开发者是企业刚需,覆盖前端、后端、小程序、桌面应用(Electron)等场景 ym.miaoshou.net/doctor/1172.html。
注意事项(避坑指南)
前后端 JS 的差异:
前端 JS 受浏览器安全限制(如跨域、无法直接操作本地文件);
后端 Node.js 拥有系统级权限(文件 / 进程 / 网络),但无 DOM/BOM 接口(不能用 document/window);
异步编程是核心:JS 是单线程异步语言,后端开发中要重点掌握 Promise/async/await,避免回调地狱;
后端能力需补充:JS 本身不包含后端核心能力(如数据库操作、HTTP 服务),需通过 Node.js 生态的库 / 框架实现;
性能考量:Node.js 适合 I/O 密集型场景(如接口服务、数据处理),不适合 CPU 密集型场景(如大规模计算),这类场景可结合 Rust/Go 辅助。
总结
JavaScript 完全能同时做前端和后端:前端是原生能力,后端通过 Node.js 实现;
核心优势是语言统一、生态丰富、开发高效,是全栈开发的主流选择之一;
关键要点 ym.miaoshou.net/news/521.html:
前端掌握 DOM / 框架 / 网络请求,后端掌握 Node.js + 服务器 / 数据库操作;
注意前后端 JS 的环境差异,重点掌握异步编程;
适用场景:中小型项目、快速原型开发、接口服务、B 端系统等(CPU 密集型场景需搭配其他语言)。