Appearance
使用 Docker 或直接在 macOS 上安装一个 Parse Server。
使用 Docker 安装
bash
docker run -v ~/Docker/my-mongo:/data --name my-mongo -d mongo
docker run -p 6379:6379 \
-v ~/Docker/my-redis:/data \
--name my-redis \
-d redis redis-server --appendonly yes
json
/* config.json */
{
"appId": "appId",
"masterKey": "masterKey",
"databaseURI": "mongodb://my-mongo/parse",
"clientKey": "clientKey",
"javascriptKey": "javascriptKey",
"restAPIKey": "restAPIKey",
"dotNetKey": "dotNetKey",
"webhookKey": "webhookKey"
}
json
/* package.json */
{
"name": "my-parse",
"scripts": {
"start": "parse-server config.json"
},
"dependencies": {
"parse-server": "^2.2.25"
}
}
bash
## Dockerfile
FROM node
MAINTAINER keng42
RUN mkdir parse
ADD . /parse
WORKDIR /parse
RUN npm install --registry=https://registry.npm.taobao.org
EXPOSE 1337
CMD [ "npm", "start" ]
bash
docker build -t my-parse .
docker run -d -p 1337:1337 --link my-mongo --name my-parse my-parse
直接在 macOS 安装
bash
npm i -g mongodb-runner parse-server parse-dashboard
mongodb-runner start
parse-server parse-server-config.json
parse-dashboard parse-dashboard-config.json
json
/* parse-dashboard-config.json */
{
"appId": "appId",
"masterKey": "masterKey",
"serverURL": "http://localhost:1337/parse",
"appName": "meat",
"port": "1338"
}
MongoDB 权限配置
bash
cd ~/.mongodb # mongodb 安装目录
## 第一次启动数据库
mongod --dbpath ./data/db
## 开启验证功能启动数据库
mongod --dbpath ./data/db --auth
## 关闭数据库
lsof -i tcp:27017
kill -2 <PID>
## 连接数据库
mongo
## 添加管理员
> use admin
> db.createUser({
user: "cured",
pwd: "fcpc2019",
roles: [{
role: "userAdminAnyDatabase",
db: "admin"
}]
})
## 添加普通用户
> use parse
> db.createUser({
user: "meat",
pwd: "fcpc2019",
roles: [{
role: "readWrite",
db: "parse"
}]
})
## 验证用户权限
> use admin
> db.auth('cured','fcpc2019')
> use parse
> db.auth('meat','fcpc2019')
相应的,parse-server
配置文件修改
json
mongodb://meat:fcpc2019@my-mongo/parse
坑
Q: Docker 里启动 parse 的时候总是
warn: Unable to ensure uniqueness for usernames: MongoError: failed to connect to server [localhost:27017] on first connect
A: 配置文件 mongodb://localhost/dbname
应该修改为 mongodb://mongo/dbname
其中 mongo 是连接的 mongodb 容器的 IP 地址,由 docker 在连接两个容器的时候修改的 host。
所以其实这个 warn 想表达的是:根本就连不上数据库!