webapp
│ README.md
│ Dockerfile
│ package.json
│
└───client
│ │ tsconfig.json
│ │ .eslintrc.js
│ │
│ └───config
│ │ │ config.ts
│ │ │ ...
│ └───src
│ │ app.tsx
│ └───assets
│ └───components
│ └───models
│ └───pages
│
└───server
│ server.ts
│ tsconfig.json
│ .eslintrc.js
└───controller
│ home.ts
└───service
└───middles
└───models
└───router
└───view
│ index.html
// router
import Router = require('koa-router');
import HomeCtrl from '../controller/home';
import UserCtrl from '../controller/user';
const router = new Router();
export default (app) => {
router.get('/api/currentUser', UserCtrl.current);
router.all('(.*)', HomeCtrl.index); // 设置通配符路由
app.use(router.routes());
};
// server.ts
import Koa = require('koa');
import router from './router';
const path = require('path');
const koaNunjucks = require('koa-nunjucks-2');
const serve = require('koa-static');
const app = new Koa();
const staticPath = path.join(__dirname, 'views');
app.use(koaNunjucks({
ext: 'html',
path: staticPath,
nunjucksConfig: {
noCache: true
}
}))
app.use(serve(staticPath))
router(app);
app.listen(3000, ()=> {
console.log(`Server running on http://localhost:3000`);
});