Node.js+Express极简搭建Web服务器
Node.js+Express极简搭建Web服务器
2026-08-28 08:41
介绍用Node.js和Express从零搭建Web服务器的流程。
nodejst搭建web服务器
这里的 nodejst 可以理解为使用 Node.js 技术搭建 Web 服务器。Node.js 基于 JavaScript 运行环境,适合开发接口服务、后台管理系统、前后端分离项目服务端,也可以处理高并发网络请求。下面将以 Express 框架为例,介绍如何从零搭建一个可运行的 Web 服务器。
一、准备运行环境
在开始之前,需要先安装 Node.js。安装完成后,可以在命令行中执行:
node -v npm -v如果能看到版本号,说明 Node.js 和 npm 包管理器已经安装成功。npm 用于安装项目依赖,例如 Express、dotenv、cors 等常用模块。
二、创建项目目录
在合适的位置新建一个项目文件夹,例如:
mkdir nodejs-web-server cd nodejs-web-server然后初始化项目:
npm init -y执行后会生成
package.json文件,用于记录项目名称、版本、脚本命令和依赖包信息。三、安装 Express 框架
Express 是 Node.js 中非常常用的 Web 框架,可以快速创建路由、处理请求和响应。
npm install express如果需要支持环境变量、跨域请求等功能,可以继续安装:
npm install dotenv cors helmet其中:
dotenv:用于读取.env环境变量文件;cors:用于处理浏览器跨域访问;helmet:用于增强 HTTP 安全响应头。
四、创建服务器入口文件
在项目根目录创建 server.js 文件,写入以下代码:
const express = require('express');
const cors = require('cors');
const helmet = require('helmet');
const app = express();
// 启用安全响应头
app.use(helmet());
// 启用跨域
app.use(cors());
// 解析 JSON 请求体
app.use(express.json());
// 解析 URL 编码请求体
app.use(express.urlencoded({ extended: true }));
// 首页路由
app.get('/', (req, res) => {
res.json({
message: '欢迎使用 Node.js Web 服务器'
});
});
// 健康检查接口
app.get('/api/health', (req, res) => {
res.json({
status: 'ok'
});
});
// 示例接口:接收 POST 请求
app.post('/api/user', (req, res) => {
const { name, email } = req.body;
if (!name || !email) {
return res.status(400).json({
message: '姓名和邮箱不能为空'
});
}
res.json({
message: '用户数据接收成功',
data: {
name,
email
}
});
});
// 404 处理
app.use((req, res) => {
res.status(404).json({
message: '接口不存在'
});
});
// 全局错误处理
app.use((err, req, res, next) => {
console.error(err);
res.status(500).json({
message: '服务器内部错误'
});
});
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
console.log(`服务器已启动,端口:${PORT}`);
});
保存文件后,在命令行运行:
node server.js
然后在浏览器访问:
http://localhost:3000/
如果看到 JSON 欢迎信息,说明 Web 服务器已经搭建成功。
五、配置启动脚本
为了方便启动项目,可以在 package.json 中添加脚本:
{
"scripts": {
"start": "node server.js",
"dev": "node server.js"
}
}
之后可以使用以下命令启动:
npm start
如果希望开发时文件修改后自动重启,可以安装 nodemon:
npm install nodemon --save-dev
然后修改脚本:
{
"scripts": {
"start": "node server.js",
"dev": "nodemon server.js"
}
}
开发阶段运行:
npm run dev
六、使用环境变量管理配置
生产环境中不建议把端口、数据库地址、密钥等信息直接写死在代码里。可以在项目根目录创建 .env 文件:
PORT=3000
NODE_ENV=development
然后在代码中加载:
require('dotenv').config();
这样可以通过 process.env.PORT 获取端口配置,让项目在不同环境中更加灵活。
七、添加静态资源目录
如果 Web 服务器需要托管前端页面、图片、CSS、JS 文件,可以使用 Express 的静态资源功能。
创建 public 目录:
mkdir public
在 public 中放入 index.html,然后在 server.js 中添加:
app.use(express.static('public'));
访问:
http://localhost:3000/index.html
即可加载静态页面。
八、部署上线建议
项目部署时,可以使用以下方式:
- 直接启动:适合简单测试环境。
- 使用 PM2 管理进程:适合生产环境,支持进程守护、日志查看、自动重启。
- 配合 Nginx 反向代理:适合正式域名访问和负载均衡。
- 使用 Docker 容器化部署:适合多环境一致性和自动化发布。
例如使用 PM2:
npm install pm2 -g
pm2 start server.js --name nodejs-web-server
查看运行状态:
pm2 status
查看日志:
pm2 logs
九、常见问题
1. 端口被占用
如果启动时报端口被占用,可以更换端口,例如:
PORT=3001 node server.js
或者在 .env 中修改端口。
2. 跨域请求失败
浏览器访问接口时如果提示跨域错误,需要启用 cors 中间件:
app.use(cors());
3. 请求体无法获取
如果 POST 请求无法读取 req.body,需要添加:
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
4. 路由顺序错误
Express 路由是按照代码顺序匹配的。如果 app.use 放在具体路由之前,可能会提前处理请求。因此,建议把通用中间件放在前面,把具体接口路由放在后面,把错误处理放在最后。
总结
本文介绍了使用 Node.js 搭建 Web 服务器的完整流程,包括安装环境、初始化项目、安装 Express、创建路由、处理请求响应、配置启动脚本、管理环境变量、托管静态资源以及部署上线等内容。对于初学者来说,Express 是入门 Node.js Web 开发的理想选择;对于实际项目来说,还需要结合数据库、日志系统、权限验证、安全策略和部署工具,才能构建更稳定、更安全的 Web 服务。