generator-wxnode-boilerplate
Version:
Yeoman generator for wxnode boilerplate
47 lines (39 loc) • 1.4 kB
JavaScript
const Koa = require('koa');
const colors = require('colors');
const proxy = require('./proxy');
const etc = require('../config');
const app = new Koa();
const port = parseInt(process.env.PORT, 10) || etc.FontEndServerPort;
// 引用服务端的page路由配置
const pageRouter = require('../app/router/page').default;
const initServerRender = require('../app/render/render-server').initServerRender;
// 初始化服务端渲染
initServerRender(app);
// 将ngi请求代理给 npm run dev:server的服务,将cgi服务抽出来启动是为了方便前后热更
app.use(proxy({
host: `http://127.0.0.1:${etc.ServerPort}`,
match: /^\/mock\/cgi\//i,
followRedirect: false,
jar: true,
}));
// 老的cgi代理请求,可以绕过refer校验,实现开发域名请求
app.use(proxy({
host: 'https://developers.weixin.qq.com',
match: /^\/(cgi-bin\/|basesafeqrcode|uploadimg2cdn)/i,
reWriteRefer: true,
jar: true,
}));
// a mock for src/router/index.ts
// const router = new KoaRouter();
// router.use('/', pageRouter.routes());
app.use(pageRouter.routes());
app.use(async (ctx) => {
// 404
const msg = `404,请在router目录配置你的路由:${ctx.request.url}`;
console.error(msg);
ctx.state = 404;
});
// 创建server
app.listen(port,function(){
console.log(`直接访问 http://localhost:${etc.FontEndServerPort}/server`.underline.yellow);
});