ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
```javascript const Koa = require('koa'); const logger = require('koa-logger'); const Router = require('koa-router'); const cors = require('@koa/cors'); const compose = require('koa-compose') const qs = require('qs'); //解析querystring const app = new Koa(); app.use(logger());//记录日志 app.use(cors());//支持跨域请求 // 主页(非RESTful格式的API) let routerHome = new Router(); routerHome.get('/', async (ctx, next) => { ctx.body = '欢迎欢迎!'; }) // RESTful API let routerRest = new Router(); //获取指定资源resource的列表 //例如:http://localhost:3000/resource routerRest.get('/resource', async (ctx, next) => { ctx.body = { errno: 0, errmsg: 'GET API执行成功', data: '返回的数据' //这里放回一个数据列表 }; }) //获取指定ID的资源 //例如:http://localhost:3000/resource/1?name=zengqs&age=18 routerRest.get('/resource/:id', async (ctx, next) => { //参数解析示例 console.log(ctx.params); //{ id: '1' } console.log(ctx.querystring);//name=zengqs&age=18 let obj = qs.parse(ctx.querystring); console.log(obj) //{ name: 'zengqs', age: '18' } let id = ctx.params.id; ctx.body = { errno: 0, errmsg: 'GET API执行成功', data: '返回的数据' //检索数据库,返回指定id的数据 }; }) //新增记录,数据通过BODY传递 routerRest.post('/resource', async (ctx, next) => { ctx.body = { errno: 0, errmsg: 'POST API执行成功', data: '返回的数据' }; }) //删除指定ID的数据 routerRest.delete('/resource/:id', async (ctx, next) => { let id = ctx.params.id; ctx.body = { errno: 0, errmsg: 'POST API执行成功', data: '返回的数据' }; }) //更新指定ID的数据,数据通过BODY传递 routerRest.put('/resource/:id', async (ctx, next) => { let id = ctx.params.id; ctx.body = { errno: 0, errmsg: 'POST API执行成功', data: '返回的数据' }; }) app.use(compose([routerHome.routes(), routerHome.allowedMethods()])) app.use(compose([routerRest.routes(), routerRest.allowedMethods()])) //监听3000端口 app.listen(3000, () => { console.log('server is running at http://localhost:3000') }); ```