Skip to content

Commit cf5534d

Browse files
author
lucifer
committed
feat: 多环境支持
1 parent aeb5f82 commit cf5534d

File tree

7 files changed

+64
-15
lines changed

7 files changed

+64
-15
lines changed

Diff for: app.js

+6-1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ const passport = require("./middleware/passport");
1111
const index = require("./routes/index");
1212
const users = require("./routes/users");
1313
const lectures = require("./routes/lectures");
14+
const mockUserInfo = require("./middleware/mockUserInfo");
1415

1516
// error handler
1617
onerror(app);
@@ -24,7 +25,11 @@ app.use(
2425
app.use(cors({ credentials: true }));
2526
app.use(json());
2627
app.use(logger());
27-
app.use(passport);
28+
if (process.env.NODE_ENV === "development") {
29+
app.use(mockUserInfo);
30+
} else {
31+
app.use(passport);
32+
}
2833
app.use(require("koa-static")(__dirname + "/public"));
2934

3035
app.use(

Diff for: middleware/mockUserInfo.js

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
module.exports = async function checkAuth(ctx, next) {
2+
if (!ctx.session) {
3+
ctx.session = {};
4+
}
5+
ctx.session.user = {
6+
login: "azl397985856",
7+
avatar_url: "https://avatars.githubusercontent.com/u/12479470?v=4",
8+
name: "lucifer",
9+
pay: true,
10+
};
11+
12+
await next();
13+
};

Diff for: middleware/passport.js

+5-2
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,10 @@ module.exports = async function checkAuth(ctx, next) {
1414
if (!ctx.session) {
1515
ctx.session = {};
1616
}
17-
if (ctx.session.user) next();
17+
if (ctx.session.user) {
18+
await next();
19+
return;
20+
}
1821
const token = ctx.cookies.get("token");
1922

2023
if (token) {
@@ -79,5 +82,5 @@ module.exports = async function checkAuth(ctx, next) {
7982
};
8083
}
8184

82-
next();
85+
await next();
8386
};

Diff for: package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
"version": "0.1.0",
44
"private": true,
55
"scripts": {
6-
"start": "node bin/www",
7-
"dev": "./node_modules/.bin/nodemon bin/www",
6+
"start": "NODE_ENV=production node bin/www",
7+
"dev": "NODE_ENV=development ./node_modules/.bin/nodemon bin/www",
88
"prd": "pm2 start bin/www",
99
"test": "echo \"Error: no test specified\" && exit 1"
1010
},

Diff for: routes/lectures.js

+9-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
const router = require("koa-router")();
22
const lectures = require("../static/lectures/lectures.json");
33
const { decrypt } = require("../utils/crypto");
4+
const { success, fail } = require("../utils/request");
45

56
router.get("/api/v1/lectures/basic", async (ctx) => {
67
ctx.body = {
@@ -24,11 +25,14 @@ router.get("/api/v1/lectures/basic", async (ctx) => {
2425
router.get("/api/v1/lectures/basic/:id", async (ctx) => {
2526
const id = ctx.params.id;
2627
const lecture = lectures[id];
27-
28-
ctx.body = {
29-
...lecture,
30-
content: decrypt(lectures[id].content),
31-
};
28+
if (!lecture) {
29+
ctx.body = fail({ message: "讲义不存在" });
30+
} else {
31+
ctx.body = success({
32+
...lecture,
33+
content: decrypt(lecture.content),
34+
});
35+
}
3236
});
3337

3438
module.exports = router;

Diff for: routes/users.js

+13-5
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,24 @@
11
const router = require("koa-router")();
22

3+
const { success, fail } = require("../utils/request");
4+
35
router.get("/api/v1/user", async (ctx) => {
46
if (ctx.session && ctx.session.user) {
5-
ctx.body = ctx.session.body;
7+
ctx.body = success(ctx.session.user);
68
} else {
7-
ctx.body = {
8-
success: false,
9+
ctx.body = fail({
910
code: 91,
10-
data: null,
1111
message: "您还没有登录,请先登录~",
12-
};
12+
});
13+
}
14+
});
15+
16+
router.get("/api/v1/user/logout", async (ctx) => {
17+
if (ctx.session && ctx.session.user) {
18+
ctx.session = {};
1319
}
20+
ctx.cookies.set("token", "");
21+
ctx.body = success("ok");
1422
});
1523

1624
module.exports = router;

Diff for: utils/request.js

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
module.exports = {
2+
success(data) {
3+
return {
4+
success: true,
5+
data,
6+
};
7+
},
8+
fail({ message, code = 10001 }) {
9+
return {
10+
success: false,
11+
data: null,
12+
message,
13+
code,
14+
};
15+
},
16+
};

0 commit comments

Comments
 (0)