40 lines
1.1 KiB
JavaScript
40 lines
1.1 KiB
JavaScript
const express = require('express');
|
|
const path = require('path');
|
|
const cookieParser = require('cookie-parser');
|
|
const logger = require('morgan');
|
|
const http = require('http');
|
|
const config = require('./config');
|
|
|
|
const indexRouter = require('./routers/index');
|
|
const messageRouter = require('./routers/message');
|
|
const { refreshToken } = require('./common/wechat');
|
|
const { initializeTokenStore } = require('./common/token');
|
|
|
|
const app = express();
|
|
|
|
setTimeout(async () => {
|
|
// TODO: Here we need an improvement! I have tried EventEmitter but it's not working. :(
|
|
await initializeTokenStore();
|
|
await refreshToken(app);
|
|
setInterval(async () => refreshToken(), 100 * 60 * 1000);
|
|
}, 1000);
|
|
|
|
app.set('views', path.join(__dirname, 'views'));
|
|
app.set('view engine', 'ejs');
|
|
app.set('trust proxy', true);
|
|
|
|
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('/', indexRouter);
|
|
app.use('/message', messageRouter);
|
|
|
|
const server = http.createServer(app);
|
|
|
|
server.listen(config.port);
|
|
|
|
module.exports = app;
|