parse-server和parse-dashboard

Parse Server & Parse Dashboard 全解析:从部署到实战

Parse Server 和 Parse Dashboard 是 Parse 生态的核心组件——Parse Server 是开源的后端服务框架(替代 Parse 官方托管服务),Parse Dashboard 是配套的可视化管理面板,二者结合可快速搭建完整的后端服务(无需从零写接口),特别适合前端/全栈开发者快速落地项目。下面我会从核心概念、部署、配置到实战,讲清楚这两个工具的所有关键知识点。


一、核心概念:Parse Server & Parse Dashboard 是什么?

1. Parse Server

  • 定位:开源的 BaaS(Backend as a Service)后端框架,由 Parse 官方开源(原 Parse 服务关闭后)。
  • 核心能力
    • 开箱即用的 REST API(用户认证、数据CRUD、文件存储、推送通知);
    • 支持 MongoDB 存储数据;
    • 自定义云函数(扩展业务逻辑);
    • 兼容 Parse 客户端 SDK(iOS/Android/JS/React Native);
    • 无需编写重复的 CURD 接口,前端直接调用 SDK 操作数据。
  • 适用场景:快速开发原型、中小项目后端、移动端/前端配套后端。

2. Parse Dashboard

  • 定位:Parse Server 的可视化管理工具(Web 界面)。
  • 核心能力
    • 查看/编辑/删除数据库中的数据;
    • 管理用户、角色、权限;
    • 查看/调试云函数;
    • 管理文件存储、推送通知、应用设置;
    • 监控 API 请求日志、性能指标。
  • 核心价值:无需操作 MongoDB 命令行,可视化管理后端数据和配置。

3. 二者关系

1
2
3
4
前端/客户端 SDK ←→ Parse Server(后端服务) ←→ MongoDB(数据库)


Parse Dashboard(可视化管理)

二、快速部署:本地/服务器搭建(最简流程)

前置条件

  1. 安装 Node.js(v14+)、npm/yarn;
  2. 安装 MongoDB(本地/远程,推荐 4.4+);
  3. 基础命令行操作能力。

步骤 1:初始化项目 & 安装依赖

1
2
3
4
5
6
7
8
# 1. 创建项目目录
mkdir parse-server-demo && cd parse-server-demo

# 2. 初始化 package.json
npm init -y

# 3. 安装核心依赖
npm install parse-server parse-dashboard express --save

步骤 2:编写启动脚本(server.js)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
const express = require('express');
const ParseServer = require('parse-server').ParseServer;
const ParseDashboard = require('parse-dashboard');
const path = require('path');

const app = express();

// 1. 配置 Parse Server
const parseServerConfig = {
databaseURI: 'mongodb://localhost:27017/parse-demo', // MongoDB 连接地址
appId: 'myAppId', // 应用ID(自定义,客户端连接时需要)
masterKey: 'myMasterKey', // 主密钥(权限最高,务必保密)
serverURL: 'http://localhost:1337/parse', // Parse Server 访问地址
cloud: path.join(__dirname, '/cloud/main.js'), // 云函数目录(可选)
appName: 'Parse Demo App' // 应用名称
};

// 2. 挂载 Parse Server
const api = new ParseServer(parseServerConfig);
app.use('/parse', api);

// 3. 配置 Parse Dashboard
const dashboardConfig = {
apps: [
{
appId: 'myAppId', // 与 Parse Server 的 appId 一致
masterKey: 'myMasterKey', // 与 Parse Server 的 masterKey 一致
serverURL: 'http://localhost:1337/parse', // Parse Server 地址
appName: 'Parse Demo App'
}
],
users: [
{
user: 'admin', // 仪表盘登录用户名
pass: 'admin123' // 仪表盘登录密码(生产环境务必复杂)
}
],
useEncryptedPasswords: false // 开发环境关闭加密,生产环境开启
};

// 4. 挂载 Parse Dashboard
const dashboard = new ParseDashboard(dashboardConfig);
app.use('/dashboard', dashboard);

// 5. 启动服务
const port = 1337;
app.listen(port, () => {
console.log(`Parse Server 运行在: http://localhost:${port}/parse`);
console.log(`Parse Dashboard 运行在: http://localhost:${port}/dashboard`);
});

步骤 3:启动 MongoDB(本地)

1
2
3
4
5
# 启动 MongoDB(Mac/Linux)
mongod --dbpath /usr/local/var/mongodb

# Windows(需配置环境变量)
mongod --dbpath D:\mongodb\data

步骤 4:启动 Parse 服务

1
2
3
4
5
6
# 运行启动脚本
node server.js

# 成功输出:
# Parse Server 运行在: http://localhost:1337/parse
# Parse Dashboard 运行在: http://localhost:1337/dashboard

步骤 5:访问 Dashboard

  1. 打开浏览器,访问 http://localhost:1337/dashboard
  2. 输入用户名 admin、密码 admin123 登录;
  3. 进入后即可看到可视化管理界面(数据、用户、云函数等)。

三、核心配置详解(避坑关键)

1. Parse Server 关键配置

配置项 作用 注意事项
databaseURI MongoDB 连接地址 远程 MongoDB 需填写完整地址(如 mongodb://user:pass@host:port/db
appId 应用唯一标识 客户端 SDK 连接时必须匹配
masterKey 主密钥 拥有最高权限,生产环境绝对不能泄露
serverURL 服务访问地址 客户端/仪表盘需通过此地址连接
cloud 云函数目录 自定义业务逻辑(如订单处理、数据校验)
fileUpload 文件存储配置 可配置本地存储/Amazon S3/阿里云 OSS
auth 认证配置 可集成第三方登录(Google/Facebook)

2. Parse Dashboard 安全配置(生产环境必改)

1
2
3
4
5
6
7
8
9
10
11
12
13
// 生产环境 Dashboard 配置
const dashboardConfig = {
apps: [...],
users: [
{
user: 'admin',
pass: '$2a$10$xxxxxx' // 加密后的密码(使用 bcrypt 生成)
}
],
useEncryptedPasswords: true, // 开启密码加密
trustProxy: 1, // 部署在反向代理(Nginx)后需开启
allowInsecureHTTP: false // 生产环境禁止 HTTP,必须用 HTTPS
};
  • 生成加密密码:使用 bcrypt 库生成(npm install bcrypt):
    1
    2
    3
    4
    const bcrypt = require('bcrypt');
    const password = 'your-strong-password';
    const hash = bcrypt.hashSync(password, 10);
    console.log(hash); // 复制此值到 pass 字段

四、实战用法:前端调用 Parse Server API

1. 安装 Parse JS SDK

1
npm install parse --save

2. 前端初始化 & 数据操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import Parse from 'parse';

// 1. 初始化 Parse
Parse.initialize('myAppId'); // 与服务端 appId 一致
Parse.serverURL = 'http://localhost:1337/parse'; // Parse Server 地址

// 2. 创建数据(示例:创建用户)
async function createUser() {
const user = new Parse.User();
user.set('username', 'testuser');
user.set('password', 'test123');
user.set('email', 'test@example.com');

try {
await user.signUp();
console.log('用户创建成功:', user.id);
} catch (error) {
console.error('创建失败:', error.message);
}
}

// 3. 查询数据(示例:查询所有用户)
async function queryUsers() {
const User = Parse.Object.extend('_User');
const query = new Parse.Query(User);

try {
const results = await query.find();
console.log('用户列表:', results);
} catch (error) {
console.error('查询失败:', error.message);
}
}

// 4. 调用云函数(示例:自定义云函数)
async function callCloudFunction() {
try {
const result = await Parse.Cloud.run('hello', { name: '张三' });
console.log('云函数返回:', result);
} catch (error) {
console.error('调用失败:', error.message);
}
}

// 执行方法
createUser();
queryUsers();

3. 自定义云函数(扩展业务逻辑)

  1. 创建云函数目录及文件:cloud/main.js
  2. 编写云函数:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    // cloud/main.js
    Parse.Cloud.define('hello', async (request) => {
    const name = request.params.name || '未知用户';
    return `你好,${name}!这是 Parse 云函数`;
    });

    // 示例:数据校验云函数
    Parse.Cloud.beforeSave('Post', async (request) => {
    const post = request.object;
    const title = post.get('title');
    if (!title || title.length < 5) {
    throw new Parse.Error(400, '标题长度不能少于5个字符');
    }
    });
  3. 重启 Parse Server,即可在 Dashboard 中看到云函数,并通过前端 SDK 调用。

五、生产环境部署注意事项

1. 安全加固

  • 禁用 masterKey 直接暴露,改用 REST API 密钥/客户端密钥;
  • 开启 HTTPS(通过 Nginx 反向代理 + SSL 证书);
  • 限制 MongoDB 访问 IP,设置复杂密码;
  • 定期备份 MongoDB 数据;
  • 关闭 Dashboard 公网访问(仅内网/VPN 访问)。

2. 性能优化

  • 配置 MongoDB 索引(提升查询速度);
  • 开启 Parse Server 缓存(Redis);
  • 多进程运行 Parse Server(使用 PM2):
    1
    2
    3
    4
    5
    # 安装 PM2
    npm install pm2 -g

    # 启动(多进程)
    pm2 start server.js -i max
  • 配置文件存储到对象存储(如 S3/阿里云 OSS),避免本地存储瓶颈。

3. 监控与日志

  • 使用 PM2 监控进程:pm2 monit
  • 开启 Parse Server 日志:配置 loggerAdapter
  • 监控 MongoDB 性能(如慢查询)。

六、常见问题与解决方案

1. Dashboard 登录失败

  • 检查 appId/masterKey 是否与 Parse Server 一致;
  • 生产环境开启 useEncryptedPasswords 后,必须使用加密密码;
  • 确认 allowInsecureHTTP 配置(HTTPS 环境需设为 false)。

2. 前端调用 API 报 401/403

  • 检查 Parse.initializeappId 是否正确;
  • 确认 serverURL 地址可访问(无跨域/防火墙限制);
  • 敏感操作(如删除数据)需验证 masterKey(前端禁止暴露,仅后端云函数使用)。

3. MongoDB 连接失败

  • 检查 MongoDB 服务是否启动;
  • 确认连接地址、用户名/密码正确;
  • 远程 MongoDB 需开放端口(27017)。

4. 云函数不生效

  • 确认 cloud 配置路径正确;
  • 重启 Parse Server 使云函数生效;
  • 检查云函数语法错误(查看服务端日志)。

总结

关键点回顾

  1. 核心定位:Parse Server 是开箱即用的 BaaS 后端,Parse Dashboard 是可视化管理面板,二者结合可快速搭建后端服务;
  2. 部署核心:本地部署需先启动 MongoDB,配置 appId/masterKey 是关键,生产环境务必做好安全配置(HTTPS、密码加密、限制访问);
  3. 使用核心:前端通过 Parse SDK 直接调用 API 操作数据,复杂业务逻辑通过云函数扩展,无需编写后端接口。

Parse Server 特别适合前端开发者快速落地项目(无需精通后端/数据库),中小项目/原型开发使用成本极低,生产环境需重点关注安全和性能配置。


parse-server和parse-dashboard
https://cszy.top/2017-11-10 parse-server和parse-dashboard/
作者
csorz
发布于
2017年11月10日
许可协议