koajs mysql_koa+mysql+vue+socket.io全栈开发之web api篇

目标是建立一个 web QQ的项目,使用的技术栈如下:

后端是基于koa2 的 web api 服务层,提供curd操作的http接口,登录验证使用的是 json web token,跨域方案使用的是 cors;

数据库使用的是 mysql;

为了实时通信,使用的是基于websocket协议的 socket.io 框架;

前端则使用的是 vue + vuex。

本篇则讲叙服务端的搭建,之所以使用 koa,而不使用其他封装过的框架,比如 Egg.js, Thinkjs。因为在我看来,koa2 已经够方便,插件也足够多,完全可以根据自己的需求,像搭积木一样构建出最适合业务需求的框架。这样不但摒弃了很多用不到的插件,使整个框架更加精简,也能对整个框架知根知底,减少了很多不可预知因素的影响。

当然我觉得最主要的是我比较懒😄,不想再去学其他框架特有的api,特有的配置。因为前端有太多框架太多api需要掌握了,对于非互联网公认的技术标准,我觉得学习的优先级还是要靠后一点的。因为这些个框架,三天两头就冒出个热门的,简直多不胜数,学不过来啊,而koa基本都是这些框架的底层,明显靠谱多了。

基本框架搭建

这几个koa插件大部分项目八九不离十要用到:

koa-body 解析http数据

koa-compress gzip压缩

koa-router 路由

koa-static 设置静态目录

koa2-cors 跨域cors

log4js 老牌的日志组件

jsonwebtoken jwt 组件

基本的目录结构

public #公共目录

src #前端目录

server #后端目录

├── common #工具

├── config #配置文件

├── controller #控制器

├── daos #数据库访问层

├── logs #日志目录

├── middleware #中间件目录

├── socket #socketio目录

├── app.js #入口文件

└── router.js #路由

入口文件app.js

主要就是几个中间件配置需要注意一下,这里同时还加载了 socket.io 服务。socket.io 相关的基本知识点可以看我之前写的文章关于socket.io的使用。

//app.js

//...

const path = require("path");

const baseDir = path.normalize(__dirname + "/..");

// gzip

app.use(

compress({

filter: function(content_type) {

return /text|javascript/i.test(con

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值