是在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
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/77162.html