首页主机资讯Node.js如何在Linux上进行API开发

Node.js如何在Linux上进行API开发

时间2026-01-15 11:20:03发布访客分类主机资讯浏览747
导读:在 Linux 上进行 Node.js API 开发 一 环境准备与安装 选择 Node.js LTS 版本,优先使用 nvm 管理多版本,便于切换与回滚。示例: 安装 nvm:curl -o- https://raw.githubus...

在 Linux 上进行 Node.js API 开发

一 环境准备与安装

  • 选择 Node.js LTS 版本,优先使用 nvm 管理多版本,便于切换与回滚。示例:
    • 安装 nvm:curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
    • 重新加载:source ~/.bashrc
    • 安装与切换:nvm install 18 & & nvm use 18
  • 验证:node -v、npm -v
  • 可选二进制安装(无 nvm 时):下载 Node.js Linux 64 位包,解压并将 bin 目录软链到 /usr/local/bin,便于全局使用。

二 初始化项目与最小 API

  • 初始化与依赖:
    • mkdir my-api & & cd my-api
    • npm init -y
    • npm i express cors helmet morgan
    • npm i -D nodemon
  • 最小 Express 服务(app.js):
    • 代码示例:
      • const express = require(‘express’); const cors = require(‘cors’); const helmet = require(‘helmet’); const morgan = require(‘morgan’);
      • const app = express(); const port = process.env.PORT || 3000;
      • app.use(helmet()); app.use(morgan(‘combined’)); app.use(cors()); app.use(express.json());
      • app.get(‘/api/hello’, (req, res) => res.json({ message: ‘Hello, World’ } ));
      • app.listen(port, () => console.log(Server running on :${ port} ));
  • 开发运行:npx nodemon app.js(代码变更自动重启)

三 连接数据库与数据校验

  • 数据库示例(以 MySQL 为例):
    • 安装驱动:npm i mysql2
    • 连接池示例:
      • const mysql = require(‘mysql2/promise’);
      • const pool = mysql.createPool({ host: ‘localhost’, user: ‘root’, password: ‘pwd’, database: ‘test’, waitForConnections: true, connectionLimit: 10, queueLimit: 0 } );
      • app.get(‘/api/users’, async (req, res, next) => { try { const [rows] = await pool.query(‘SELECT id, name FROM users’); res.json({ data: rows } ); } catch (err) { next(err); } } );
  • 数据校验与错误处理:
    • 校验:npm i joi 或 express-validator
    • 统一错误处理中间件(示例):
      • app.use((err, req, res, next) => { const status = err.status || 500; res.status(status).json({ error: err.message } ); } );

四 运行与进程守护

  • 使用 PM2 守护与集群:
    • 全局安装:npm i -g pm2
    • 启动与集群:pm2 start app.js -i max --name my-api
    • 常用:pm2 status、pm2 logs my-api、pm2 startup(开机自启)
  • 使用 systemd 托管(可选):
    • 创建服务文件 /etc/systemd/system/node-api.service:
      • [Unit] Description=Node.js API Service
      • After=network.target
      • [Service] ExecStart=/usr/bin/node /opt/my-api/app.js
      • Restart=always User=nodejs Group=nodejs Environment=NODE_ENV=production
      • WorkingDirectory=/opt/my-api
      • [Install] WantedBy=multi-user.target
    • 启用:systemctl daemon-reload & & systemctl enable --now node-api

五 反向代理 安全与部署

  • Nginx 反向代理与静态资源:
    • 安装:sudo apt-get install nginx
    • 配置示例(/etc/nginx/sites-available/default):
      • server { listen 80; server_name your_domain.com;
        • location / { proxy_pass http://127.0.0.1:3000; proxy_http_version 1.1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection ‘upgrade’; }
        • location /static/ { alias /opt/my-api/public/; expires 1y; add_header Cache-Control “public, immutable”; }
      • }
    • 重启:sudo systemctl restart nginx
  • HTTPS:使用 Certbot 获取 Let’s Encrypt 证书,Nginx 终止 TLS,提升安全与性能
  • 防火墙与安全组
    • 云服务器需放通对应端口(如 80/443/3000);如使用云厂商安全组,添加入站规则
  • 容器化(可选):
    • Dockerfile 示例:
      • FROM node:18-alpine
      • WORKDIR /app
      • COPY package*.json ./
      • RUN npm ci --only=production
      • COPY . .
      • EXPOSE 3000
      • CMD [“node”,“app.js”]
    • 构建与运行:docker build -t my-api . & & docker run -p 3000:3000 my-api
  • API 设计与运维要点
    • 遵循 REST 语义与状态码;启用 CORS 策略;为接口增加 限流;对外提供 健康检查 /health;结构化日志(如 Winston/Pino);监控告警(如 Prometheus/Grafana

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Node.js如何在Linux上进行API开发
本文地址: https://pptw.com/jishu/779870.html
inotify在开发中如何使用 Node.js在Linux上如何进行单元测试

游客 回复需填写必要信息