local string_find = string.find local string_lower = string.lower local lor = require("lor.index") local router = require("app.router") local app = lor() local cors_header = require "cors_header" local config = require("app.config.config") local whitelist = config.whitelist local view_config = config.view_config local upload_config = config.upload_config -- 模板配置 app:conf("view enable", true) app:conf("view engine", view_config.engine) app:conf("view ext", view_config.ext) app:conf("views", view_config.views) -- session和cookie支持,如果不需要可注释以下配置 local mw_cookie = require("lor.lib.middleware.cookie") local mw_session = require("lor.lib.middleware.session") local mw_check_login = require("app.middleware.check_login") -- local mw_uploader = require("app.middleware.uploader") -- 自定义中间件1: 注入一些全局变量供模板渲染使用 local mw_inject_version = require("app.middleware.inject_app_info") app:use(mw_cookie()) app:use(mw_session({ session_key = "__rilladmin_app__", -- the key injected in cookie session_aes_key = "aes_&%$#@(*&Gjjd563hdngds35781fhxgh", -- should set by yourself timeout = 3600 -- default session timeout is 3600 seconds })) app:use(mw_inject_version()) -- intercepter: login or not app:use(mw_check_login(whitelist)) -- -- uploader -- app:use(mw_uploader({ -- dir = upload_config.dir -- })) --自定义中间件2: 设置响应头 app:use(function(req, res, next) cors_header(res) next() end) router(app) -- 业务路由处理 -- 错误处理插件,可根据需要定义多个 app:erroruse(function(err, req, res, next) -- ERROR("error: ", err) cors_header(res) local method = req.method and string_lower(req.method) if method == "options" then res:set_header("Access-Control-Max-Age", "1728000") res:set_header("Content-Length", "0") return end if req:is_found() ~= true then if string_find(req.headers["Accept"], "application/json") then res:status(404):json({ success = false, msg = "404! sorry, not found." }) else res:status(404):send("404! sorry, not found. " .. (req.path or "")) end else if string_find(req.headers["Accept"], "application/json") then res:status(500):json({ success = false, msg = "500! internal error, please check the log." }) else res:status(500):send("internal error, please check the log.") end end end) return app