linux中如何启动nodejs

linux中如何启动nodejs

Linux中启动Node.js应用,先安装Node.js,进入项目目录执行node [入口文件名].js即可运行。...

优惠价格:¥ 0.00
当前位置:首页 > Linux > linux中如何启动nodejs
详情介绍
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 --versionnpm --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 -vnpm -v命令,若正常输出版本号则说明安装成功,若报错可能是环境变量未正确配置,检查PATH中是否包含/usr/local/bin或NVM的安装路径。

Q2: PM2管理的进程突然消失怎么办?

:首先用pm2 list查看状态,若显示异常退出,可通过pm2 logs查看错误日志,常见问题包括端口冲突、内存不足或代码异常,建议结合pm2 restart <app_name>尝试恢复,并检查系统资源使用情况(如top命令),对于频繁崩溃的应用,可在PM2配置文件中增加最大内存限制参数(–max-memory-restart

0