koa-websocket通讯

344 阅读2分钟

1、什么是koa?

4285215715.png Koa 是一个新的 web 框架,由 Express 幕后的原班人马打造, 致力于成为 web 应用和 API 开发领域中的一个更小、更富有表现力、更健壮的基石。 通过利用 async 函数,Koa 帮你丢弃回调函数,并有力地增强错误处理。 Koa 并没有捆绑任何中间件, 而是提供了一套优雅的方法,帮助您快速而愉快地编写服务端应用程序。

2、搭建一个基础的koa服务

安装依赖

npm init -y
//初始化项目
npm install koa koa-router -S
npm install nodemon -D 
//nodemon是一种工具,可以自动检测到目录中的文件更改时通过重新启动应用程序来调试基于node.js的应用程序	

创建app.js

const Koa = require('koa');
const Router = require('koa-router');

//koa实例化
const app = new Koa();
const router = new Router();

router.get('/home',async ctx=>{
  ctx.body="hello World111";
})
//在地址栏输入 http://localhost:3000/home就可以在页面上看到"hello World111"

app.use(router.routes()).use(router.allowedMethods());

app.listen(3000,()=>{
  console.log('服务启动了')
})
//监听3000端口号

3、拆分路由模块

  1. 创建一个routes的文件夹
  2. 创建一个user.js

app.js

const Koa = require('koa');
const Router = require('koa-router');
const user = require('./routes/user.js')

//koa实例化
const app = new Koa();
const router = new Router();


router.prefix('/api')
// 总路由添加前缀/api,总地址变为http://localhost:3000/api

router.get('/',async ctx=>{
  ctx.body="hello World111";
})

// 子路由添加前缀/users,最后访问地址变为http://localhost:3000/api/users/user
router.use('/users',user.routes());


app.use(router.routes()).use(router.allowedMethods());


app.listen(3000,()=>{
  console.log('服务启动了')
})

user.js

const router = require('koa-router')();
 
router.get('/user', (ctx) => {
  ctx.body = {name:'tanwei'};
})
 
router.get('/userlist', (ctx) => {
  ctx.body = [{name:'tanwei'},{name:'weiwei'}]
})
 
module.exports = router;

4、拆分controllers

/controllers/user.js

class Users {
  async getUser(ctx){
    	ctx.body = {name:'xxx'};
  }
  async getUserlist(ctx){
    	ctx.body = [{name:'xxx'},{name:'yyy'}];
  }
}


module.exports = new Users();

/routes/user.js

const router = require('koa-router')();
const { getUser,getUserlist } = require('../controllers/user.js') 
router.get('/user', (ctx) => {
  ctx.body = {name:'tanwei'};
})
 
router.get('/userlist', (ctx) => {
  ctx.body = [{name:'tanwei'},{name:'weiwei'}]
})
 
module.exports = router;

5、post请求如何处理

安装依赖 npm install koa-body -S

const { koaBody } = require('koa-body');
app.use(koaBody())
//通过ctx.request.body获取post参数

6、koa连接mongodb数据库

MongoDB是一款为web应用程序和互联网基础设施设计的数据库管理系统。没错MongoDB就是数据库,是NoSQL类型的数据库

安装依赖 npm install mongoose --save

在app.js这添加连接数据库的代码

const mongoose = require('mongoose');
// 连接数据库
mongoose.connect(connectionStr,(err)=>{
  if(err) {console.log('mongonDB连接失败了'); return};
  console.log('mongonDB连接成功了');
})
//在启动项目后会给出相应提示

连接数据库的字符串抽取到了config.js文件里

module.exports = {
  connectionStr:'mongodb+srv://tanwei:19921010@cluster0.ooyzv.mongodb.net/myFirstDatabase?retryWrites=true&w=majority'
}