在 Debian 上使用 Node.js 写服务,一般流程是:安装 Node.js → 写服务代码 → 运行 →(可选)用 systemd 管理。下面给你一个从零开始的实用指南。
sudo apt update
sudo apt install nodejs npm
node -v
npm -v
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs
新建目录和文件:
mkdir my-service
cd my-service
nano server.js
server.js 内容:
const http = require('http');
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello from Node.js on Debian\n');
});
server.listen(3000, () => {
console.log('Server running at http://localhost:3000');
});
运行:
node server.js
浏览器或 curl 访问:
curl http://localhost:3000
npm init -y
npm install express
server.js:
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('Hello Express');
});
app.listen(3000, () => {
console.log('Express server on port 3000');
});
创建服务文件:
sudo nano /etc/systemd/system/my-node.service
内容(注意路径):
[Unit]
Description=Node.js Service
After=network.target
[Service]
WorkingDirectory=/home/youruser/my-service
ExecStart=/usr/bin/node /home/youruser/my-service/server.js
Restart=always
User=youruser
Environment=NODE_ENV=production
[Install]
WantedBy=multi-user.target
启用并启动:
sudo systemctl daemon-reload
sudo systemctl enable my-node
sudo systemctl start my-node
查看状态:
sudo systemctl status my-node
sudo ufw allow 3000
如果你愿意,我可以:
你现在的 Debian 版本和 Node 用途是什么?