-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathserver.js
41 lines (36 loc) · 1.02 KB
/
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
/* eslint-disable no-console */
const http = require("http");
const Koa = require("koa");
const bodyParser = require("koa-bodyparser");
const router = require("koa-router")();
const validate = require("../../lib");
const user = require("./user");
router.post("/users", validate(user.v.addUser), user.addUser);
router.get("/users/:id", validate(user.v.getUserInfo), user.getUserInfo);
router.get("/users", validate(user.v.getUserList), user.getUserList);
const app = new Koa();
app.on("error", console.log);
app.use(async (ctx, next) => {
try {
await next();
} catch (err) {
ctx.status = err.status || err.code;
ctx.body = {
success: false,
message: err.message
};
}
});
app.use(bodyParser());
app.use(router.routes());
const server = http.createServer(app.callback());
if (!module.parent) {
server.listen(process.env.PORT || 3000);
server.on("listening", () => {
console.info(
"Server listening on http://localhost:%d",
server.address().port
);
});
}
module.exports = server;