1.package.json
{
"name": "koa-demo",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"serve": "nodemon index.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"babel-plugin-transform-es2015-modules-commonjs": "^6.26.2",
"babel-register": "^6.26.0",
"koa": "^2.13.1",
"koa-bodyparser": "^4.3.0",
"koa-router": "^10.0.0",
"koa-static": "^5.0.0",
"koa-views": "^7.0.1",
"koa2-cors": "^2.0.6",
"nodemon": "^2.0.7"
}
}
2.服务service.js
const Koa = require('koa')
const cors = require('koa2-cors')
const views = require("koa-views")
const serve = require("koa-static")
import router from './routes'
const app = new Koa()
app.use(
cors({
exposeHeaders: ['WWW-Authenticate', 'Server-Authorization', 'Date'],
maxAge: 100,
credentials: true,
allowMethods: ['GET', 'POST', 'OPTIONS'],
allowHeaders: ['Content-Type', 'Authorization', 'Accept', 'X-Custom-Header', 'anonymous']
})
)
app.use(serve(__dirname + "/dist"));
app.use(serve(__dirname + "/public"));
app.use(
views("views", {
map: {
html: "ejs"
}
})
);
app.use(router.routes())
app.listen(9000)
console.log('app started at port 9000...')
3.入口index.js
require('babel-register')
(
{
plugins: ['babel-plugin-transform-es2015-modules-commonjs'],
}
)
module.exports = require('./service.js')
4.路由/routes/index.js
const router = require('koa-router')()
router.get('/hello', async (ctx, next) => {
ctx.body = "<div>Hello</div>"
})
export default router