const Koa = require('koa'), Router = require('koa-router'), art = require('koa-art-template'), path = require('path'), static = require('koa-static'), bodyParser = require('koa-bodyparser'); const routers = require('./routers/routers') const app = new Koa();// 创建koa应用 const router = new Router(); // 创建路由,支持传递参数 art(app, { root: path.join(__dirname, 'templates'), extname: '.html', debug: process.env.NODE_ENV !== 'production', cache:false, minimize: true });// 将art模板导入到koa项目中 app.use(static(`${__dirname}/static`));// 设置静态文件读取目录,可以设置多个 app.use(bodyParser());// 设置使用bodyParser接受POST数据 app.use(async (ctx,next)=>{ await next(); // console.log(ctx.status); if(parseInt(ctx.status)===404){ ctx.body=404; } // ctx.response.redirect('/about');//重定向 });// 定制404页面 router.use('/',routers.routes()); /* router.get('/', async (ctx) => { await ctx.render('input'); console.log(ctx.request) // console.log(ctx.request.url); // // console.log(ctx.request); // console.log(ctx.request.query.name);// 获取get参数,获取不到是undefined // console.log(ctx.request.querystring);// 将get参数转化为字符串格式 // console.log(ctx.params);// 获取动态路由 }) router.post("/123", async (ctx)=>{ ctx.body=ctx.request.body; console.log(ctx.request.body) }) */ // 调用router.routes()来组装匹配好的路由,返回一个合并好的中间件 // 调用router.allowedMethods()获得一个中间件,当发送了不符合的请求时,会返回 `405 Method Not Allowed` 或 `501 Not Implemented` app.use(router.routes()); app.use(router.allowedMethods({ // throw: true, // 抛出错误,代替设置响应头状态 // notImplemented: () => '不支持当前请求所需要的功能', // methodNotAllowed: () => '不支持的请求方式' })); // 这俩要放在最后 app.listen(9999,()=>{ console.log("服务器已经启动:http://localhost:80") })