var createError = require("http-errors"); var express = require("express"); var path = require("path"); var cookieParser = require("cookie-parser"); var logger = require("morgan"); const cors = require("cors"); //优先读取环境变量 require("dotenv").config(); //引入数据库连接 require("./dao/db"); //引入路由 const userRouter = require("./routes/user"); const expressRouter = require("./routes/express"); const addressRouter = require("./routes/address"); var app = express(); //配置cors const corsOptions = { allowedHeaders: ["Content-Type", "Authorization"], exposedHeaders: ["Authentication", "X-Custom-Header"], credentials: true, }; //为所有源跨域 app.use(cors(corsOptions)); //使用各种中间件 app.use(logger("dev")); app.use(express.json()); app.use( express.urlencoded({ extended: false, }) ); app.use(cookieParser()); app.use(express.static(path.join(__dirname, "public"))); //使用路由中间件 app.use("/user", userRouter); app.use("/express", expressRouter); app.use("/address", addressRouter); // catch 404 and forward to error handler app.use(function (req, res, next) { next(createError(404)); }); // 错误捕获 app.use(function (err, req, res, next) { // set locals, only providing error in development res.locals.message = err.message; res.locals.error = req.app.get("env") === "development" ? err : {}; // render the error page res.status(err.status || 500); }); module.exports = app;