当前位置:网站首页 >  百科

从零搭建可直接商用的服务器端会员系统 步骤清晰零门槛落地

时间:2026年06月02日 06:53:56 来源:易频IT社区

一、前置环境准备

1.1 安装依赖环境

我们采用轻量零配置方案,基于Node.js+SQLite开发,可直接运行在1核2G的低配服务器上,无需额外安装复杂的数据库服务。连接CentOS服务器后,直接执行以下命令完成环境安装:

``` 更新yum源 yum update -y 安装Node.js 16 LTS长期支持版本 curl -fsSL https://rpm.nodesource.com/setup_16.x | sudo bash - yum install -y nodejs 验证安装,输出版本号即为成功 node -v npm -v ```

1.2 端口配置

我们默认使用3000端口提供服务,执行以下命令开放系统防火墙端口:

``` firewall-cmd --add-port=3000/tcp --permanent firewall-cmd --reload ```

如果是阿里云、腾讯云等云服务器,除了执行上面的命令,还需要在云服务商后台的安全组规则中开放3000端口,否则外部无法访问。

二、项目初始化与代码编写

在服务器任意目录执行以下命令初始化项目,安装所有所需依赖:

``` mkdir member-system && cd member-system npm init -y npm install express sqlite3 bcryptjs jsonwebtoken cors --save ```

依赖安装完成后,在项目根目录新建入口文件app.js,复制以下完整代码,务必修改JWT_SECRET的值为你自己的随机字符串,避免token被伪造:

```js const express = require('express'); const sqlite3 = require('sqlite3').verbose(); const bcrypt = require('bcryptjs'); const jwt = require('jsonwebtoken'); const cors = require('cors'); const app = express(); // 可自定义配置项 const PORT = 3000; const JWT_SECRET = 'your_custom_random_secret_key_12345'; app.use(cors()); app.use(express.json()); // 初始化数据库和会员表 const db = new sqlite3.Database('./member.db', err => { if (err) console.error('数据库初始化失败', err.message); else { db.run(`CREATE TABLE IF NOT EXISTS members ( id INTEGER PRIMARY KEY AUTOINCREMENT, username TEXT UNIQUE NOT NULL, password TEXT NOT NULL, nickname TEXT, level INTEGER DEFAULT 1, expire_time TEXT, create_time TEXT DEFAULT CURRENT_TIMESTAMP )`); console.log('会员系统数据库初始化完成'); } }); // 会员注册接口 app.post('/api/register', (req, res) => { const { username, password, nickname } = req.body; if (!username || !password) { return res.json({ code: 400, msg: '用户名和密码不能为空' }); } const hashPwd = bcrypt.hashSync(password, 10); db.run('INSERT INTO members (username, password, nickname) VALUES (?, ?, ?)', [username, hashPwd, nickname || username], function (err) { if (err) return res.json({ code: 400, msg: '用户名已存在' }); res.json({ code: 200, msg: '注册成功', data: { id: this.lastID } }); }); }); // 会员登录接口 app.post('/api/login', (req, res) => { const { username, password } = req.body; db.get('SELECT FROM members WHERE username = ?', [username], (err, row) => { if (!row || !bcrypt.compareSync(password, row.password)) { return res.json({ code: 400, msg: '用户名或密码错误' }); } // 生成7天有效期的登录token const token = jwt.sign({ id: row.id, username: row.username }, JWT_SECRET, { expiresIn: '7d' }); res.json({ code: 200, msg: '登录成功', data: { token, userInfo: { id: row.id, nickname: row.nickname, level: row.level, expire_time: row.expire_time } } }); }); }); // token验证中间件 const authMiddleware = (req, res, next) => { const token = req.headers.authorization?.split(' ')[1]; if (!token) return res.json({ code: 401, msg: '未登录' }); try { req.user = jwt.verify(token, JWT_SECRET); next(); } catch (err) { res.json({ code: 401, msg: '登录已过期,请重新登录' }); } }; // 获取会员信息接口 app.get('/api/user/info', authMiddleware, (req, res) => { db.get('SELECT id, nickname, level, expire_time, create_time FROM members WHERE id = ?', [req.user.id], (err, row) => { res.json({ code: 200, data: row }); }); }); app.listen(PORT, () => { console.log(`会员系统服务已启动,访问地址:http://你的服务器IP:${PORT}`); }); ```

三、启动服务并设置开机自启

从零搭建可直接商用的服务器端会员系统 步骤清晰零门槛落地

为了避免关闭远程连接后服务停止,我们使用pm2进程管理器管理服务,直接执行以下命令完成配置:

``` 全局安装pm2 npm install pm2 -g 启动会员系统服务 pm2 start app.js --name member-system 设置pm2开机自启 pm2 startup pm2 save ```

执行完成后输入pm2 list,看到member-system的状态为online即为启动成功。

四、功能验证与扩展

4.1 接口功能测试

可以用Postman、Apipost等工具调用接口验证功能:

  • 调用POST http://你的服务器IP:3000/api/register,传入对应参数,返回code=200即为注册成功。
  • 调用POST http://你的服务器IP:3000/api/login,传入账号密码,返回token即为登录成功。
  • 调用GET http://你的服务器IP:3000/api/user/info,请求头添加Authorization: Bearer 登录返回的token,即可获取会员信息。

4.2 绑定域名配置(可选)

如果需要绑定域名对外提供服务,安装Nginx后添加以下反向代理配置即可:

``` server { listen 80; server_name 你的绑定域名; location / { proxy_pass http://127.0.0.1:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } ```

后续可以根据需求扩展功能,比如添加会员过期管理、卡密充值、后台会员管理接口、会员权益控制等,直接在现有代码基础上修改数据库结构、添加接口即可,所有核心能力已经搭建完成,无需从零开发。

相关推荐

最新

热门

推荐

精选

标签

易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。

Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图