# 快速上手简单接口
npm install express morgan uuid lowdb@1 cookie-parser -D
// app.js
// require package
const express = require("express");
const logger = require("morgan");
const cookieParser = require("cookie-parser");
const database = require("./database/index");
const app = express();
app.use(logger("dev"));
app.set("trust proxy", 1); // trust first proxy
app.use(express.json({ limit: "50mb" }));
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
// 配置跨域
app.use("", (req, res, next) => {
res.set({
"Access-Control-Allow-Credentials": true,
"Access-Control-Allow-Origin": req.headers.origin || "*",
"Access-Control-Allow-Headers": "Content-Type,Access-Token",
"Access-Control-Allow-Methods": "PUT,POST,GET,DELETE,OPTIONS",
"Content-Type": "application/json; charset=utf-8"
});
next();
});
//添加拦截器
const whiteList = ["/user/login", "/user/logout", "/api/config/"];
app.use(function (req, res, next) {
let token = req.cookies.token;
let user_from_token = database.get("userList").find({ token }).value();
if (user_from_token) {
next();
} else {
const path = req.path;
console.log("用户没有登陆:" + req.path);
if (path.includes(whiteList[0]) || path.includes(whiteList[1]) || path.includes(whiteList[2])) {
next();
} else {
res.send({ result: "error", code: 1001, msg: "Token 已经过期" });
}
}
});
// 这里编写路由
app.use("/api/config", require("./routes/config.js"));
// 命令行传参
const port = process.env.PORT || 3000;
const host = process.env.HOST || "";
app.server = app.listen(port, host, () => {
console.log(`server running @ http://${host ? host : "localhost"}:${port}`);
});
{
"mock": "cd mock && node app.js "
}