# lesson07 **Repository Path**: superjunjin/lesson07 ## Basic Information - **Project Name**: lesson07 - **Description**: lesson07 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-08-26 - **Last Updated**: 2021-08-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 项目启动 关于课上项目安装启动和docker服务安装启动 - `yarn install` 安装依赖,注意node要大于12,否则不能安装正确 - `docker-compose up` 安装启动docker服务(前提打开docker应用,或命令行启动docker) - 另起命令行启动fastify服务器项目`node app.js` - 如果报授权失败,启动mongo-init,运行`node db.js`初始化管理员用户数据等。。。 - 然后,重启服务node app.js,应该能正常启动 # Fastify 实现课上功能 # Koa ## 实现mongo功能 ### 依赖 ``` "dependencies": { "koa": "^2.6.2", "mongoose": "^5.3.12", "koa-router": "^10.0.0" }, ``` ### 启动 `node app.js`启动app.js 暂时只实现增查操作 ```javascript const Koa = require('koa') const Router = require('koa-router'); const mongoose = require('./db/mongo.js'); const app = new Koa() const router = new Router(); const DB_URL = 'mongodb://master:master!123@localhost:27017/todos' mongoose.connect(DB_URL) const Cat = mongoose.model('Cat', { name: String }); // 对于任何请求,app将调用该异步函数处理请求: app.use(async (ctx, next) => { console.log(`Process ${ctx.request.method} ${ctx.request.url}...`); await next(); }); router.get('/hello', async (ctx, next) => { const data = await Cat.find({}); console.log('data', data) ctx.response.body = JSON.parse(data) }); router.get('/hello/:name', async (ctx, next) => { let name = ctx.params.name; const kitty = new Cat({ name: name }); kitty.save().then(() => console.log('meow')); ctx.response.body = `