Linux中启动Node.js应用,先安装
Node.js,进入项目目录执行
node [入口文件名].js即可运行。
是在Linux系统中启动Node.js的详细步骤指南,涵盖从安装到进程管理的完整流程:
安装Node.js环境
通过包管理器安装(推荐)
- Ubuntu/Debian系列:依次执行以下命令更新软件源并安装Node.js及npm工具:
sudo apt update sudo apt install nodejs sudo apt install npm
- CentOS/RHEL系列:使用YUM进行安装:
sudo yum update sudo yum install nodejs sudo yum install npm
️ 注意:不同发行版的默认仓库可能提供较旧版本,若需最新版,建议改用NodeSource脚本或NVM管理多版本。
使用Node Version Manager (NVM)灵活切换版本
如果需要同时管理多个Node.js版本,可通过NVM实现:
curl -ohttps://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash source ~/.bashrc nvm install node # 安装最新稳定版 nvm use node # 切换为默认版本
验证安装成功:node --version和npm --version应分别显示对应版本号。
创建与配置项目
初始化新项目
进入目标目录后运行:
mkdir mynodeapp && cd mynodeapp npm init -y # 快速生成默认package.json文件
此操作会创建基础的项目结构文件,其中包含依赖管理和脚本配置入口。
编写示例代码
创建入口文件(如app.js如下:
const http = require('http');
const hostname = '127.0.0.1';
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello Worldn');
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
该代码实现了一个简单的HTTP服务器,访问本地3000端口时返回文本响应。
启动应用的多种方式对比
| 方法 | 命令示例 | 适用场景 | 优点 |
|---|---|---|---|
| 直接运行 | node app.js |
开发测试 | 简单快捷 |
| npm脚本启动 | npm start(需在package.json定义scripts字段) |
标准化项目管理 | 符合社区惯例 |
| Nodemon监控模式 | nodemon app.js |
开发调试 | 代码修改后自动重启 |
| PM2进程管理 | pm2 start app.js |
生产环境部署 | 支持集群、日志记录、性能监控 |
| Systemd服务化 | 创建.service文件后systemctl start |
系统级守护进程 | 开机自启、异常恢复 |
常用命令详解:
- 基础启动:在项目根目录执行
node app.js,终端将输出日志信息,浏览器访问http://localhost:3000可看到结果,按Ctrl+C终止进程。 - PM2高级用法:先全局安装PM2:
sudo npm install -g pm2,然后启动应用并设置开机自启:pm2 start app.js # 后台运行 pm2 list # 查看所有进程列表 pm2 save # 保存当前状态以便后续恢复 pm2 startup # 根据提示配置系统服务(如centos/ubuntu)
提示:PM2支持负载均衡(
pm2 scale <app_name> N)、环境变量注入等高级功能。
进阶部署方案
Docker容器化部署
适合云原生架构的场景:
# Dockerfile示例 FROM node:14 WORKDIR /usr/src/app COPY package.json ./ RUN npm install COPY . . EXPOSE 3000 CMD ["node", "app.js"]
构建镜像并运行容器:
docker build -t my-node-app . docker run -p 3000:3000 -d my-node-app
Systemd服务配置
创建/etc/systemd/system/node-app.service文件:
[Unit] Description=Node.js Application After=network.target [Service] ExecStart=/usr/bin/node /path/to/app.js Restart=always User=nobody Group=nobody Environment=PATH=/usr/bin:/usr/local/bin Environment=NODE_ENV=production WorkingDirectory=/path/to/app [Install] WantedBy=multi-user.target
启用服务:
sudo systemctl daemon-reload sudo systemctl enable node-app # 开机自启 sudo systemctl start node-app # 立即启动
相关问答FAQs
Q1: 如何判断Node.js是否已成功安装?
答:运行node -v和npm -v命令,若正常输出版本号则说明安装成功,若报错可能是环境变量未正确配置,检查PATH中是否包含/usr/local/bin或NVM的安装路径。
Q2: PM2管理的进程突然消失怎么办?
答:首先用pm2 list查看状态,若显示异常退出,可通过pm2 logs查看错误日志,常见问题包括端口冲突、内存不足或代码异常,建议结合pm2 restart <app_name>尝试恢复,并检查系统资源使用情况(如top命令),对于频繁崩溃的应用,可在PM2配置文件中增加最大内存限制参数(–max-memory-restart
