2016-05-09 23:04:56 +08:00
|
|
|
import * as _express from "express";
|
2016-04-10 00:06:29 +08:00
|
|
|
import {NextFunction, Request, Response} from "express";
|
2016-05-09 23:04:56 +08:00
|
|
|
import * as _path from "path";
|
|
|
|
import {Utils} from "../../common/Utils";
|
2017-06-04 21:25:08 +08:00
|
|
|
import {Config} from "../../common/config/private/Config";
|
2017-07-04 01:17:49 +08:00
|
|
|
import {ProjectPath} from "../ProjectPath";
|
2017-07-14 05:39:09 +08:00
|
|
|
import {AuthenticationMWs} from "../middlewares/user/AuthenticationMWs";
|
2016-04-10 00:06:29 +08:00
|
|
|
|
2016-05-09 23:04:56 +08:00
|
|
|
export class PublicRouter {
|
2017-06-04 21:25:08 +08:00
|
|
|
|
2017-06-11 04:32:56 +08:00
|
|
|
public static route(app) {
|
2017-07-14 05:39:09 +08:00
|
|
|
const renderIndex = (req: Request, res: Response) => {
|
2017-07-28 06:04:19 +08:00
|
|
|
res.sendFile(_path.resolve(ProjectPath.FrontendFolder, 'index.html'), {maxAge: 31536000});
|
2017-07-14 05:39:09 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
app.use(
|
|
|
|
(req: Request, res: Response, next: NextFunction) => {
|
|
|
|
res.tpl = {};
|
|
|
|
|
|
|
|
res.tpl.user = null;
|
|
|
|
if (req.session.user) {
|
|
|
|
let user = Utils.clone(req.session.user);
|
|
|
|
delete user.password;
|
|
|
|
res.tpl.user = user;
|
|
|
|
}
|
|
|
|
res.tpl.clientConfig = Config.Client;
|
|
|
|
|
|
|
|
return next();
|
|
|
|
});
|
2016-05-09 23:04:56 +08:00
|
|
|
|
2017-06-11 04:32:56 +08:00
|
|
|
app.get('/config_inject.js', (req: Request, res: Response) => {
|
2017-07-28 06:04:19 +08:00
|
|
|
res.render(_path.resolve(ProjectPath.FrontendFolder, 'config_inject.ejs'), res.tpl);
|
2017-06-11 04:32:56 +08:00
|
|
|
});
|
2017-07-14 05:39:09 +08:00
|
|
|
app.get(['/', '/login', "/gallery*", "/share*", "/admin", "/search*"],
|
|
|
|
AuthenticationMWs.tryAuthenticate,
|
|
|
|
renderIndex
|
|
|
|
);
|
2016-03-20 00:31:42 +08:00
|
|
|
|
2017-07-28 06:04:19 +08:00
|
|
|
app.use(_express.static(ProjectPath.FrontendFolder, {maxAge: 31536000}));
|
|
|
|
// app.use('/node_modules', _express.static(_path.resolve(__dirname, './../../node_modules')));
|
|
|
|
// app.use('/common', _express.static(_path.resolve(__dirname, './../../common')));
|
2017-06-11 04:32:56 +08:00
|
|
|
}
|
2016-05-09 23:04:56 +08:00
|
|
|
|
2017-06-11 04:32:56 +08:00
|
|
|
}
|