什么是koa?
koa 是一个新的 web 框架,由 express 幕后的原班人马打造, 致力于成为 web 应用和 api 开发领域中的一个更小、更富有表现力、更健壮的基石。 通过利用 async 函数,koa 帮你丢弃回调函数,并有力地增强错误处理。 koa 并没有捆绑任何中间件, 而是提供了一套优雅的方法,帮助您快速而愉快地编写服务端应用程序。
koa vs express
koa使用promises和async函数来摆脱回调地狱的应用并简化错误处理。它暴露自己ctx.request和ctx.response对象而不是节点req和res对象。另一方面,express 使用其他属性和方法扩充节点req和res对象,并包括许多其他“框架”功能,例如路由和模板,koa没有。
因此,如果你希望更接近node.js和传统的node.js样式编码,你可能希望坚持使用connect / express或类似的框架。如果你想摆脱回调,请使用koa。
总结
koa是一个比express更精简,使用node新特性的中间件框架,相比之前express就是一个庞大的框架
如果你有兴趣了解更多不同,请访问koa vs express
koa 项目搭建
注意,本篇教程面向有一定koa使用经验的用户。如果,你还不了解koa,请先看下面的文档koa 中文文档
koa 文档过于精简,虽然将每一个api都进行解释说明,但还是很难将其组织起来进行应用,对于初学者来说可谓是很不友好。
笔者第一个koa项目,将所有接口,逻辑,配置等全部写在了app.js中,虽说完美运行,但是可读性,可维护性极差,所以一个好的目录结构尤为重要
目录创建
依赖安装
创建好项目目录后我们需要安装一些依赖,来供我们使用
可以根据自己的需求进行选择,但是一些依赖是必须安装的
后面的内容会讲解每个插件有什么用,如何去用。
目录详解
config
config是我们的配置文件,比如:
实际运用:
database.config.js
export default { database: '', username: '', password: '', dialect: '', host: '', port: 3306 }
具体配置之后会跟大家仔细讲解。
models
models文件夹主要是我们的数据库模型(orm),存储数据库映射文件,eg:
index.js
import sequelize from 'sequelize' import config from '../config/database.config' const sequelize = new sequelize(config) export const user = sequelize.import(__dirname + '/user') export default { user, sequelize }
以下序号代表代码行号:
controller
controller为控制层,主要处理外部请求。调用service层,将service返回的内容整合后返回给调用方
举例:
const user = require('../service/user') const findalluser = async (ctx) => { const data = ctx.request.body const result = await user.findalluser(data) ctx.body = send({data: result}) } module.exports = { findalluser }
以下序号代表代码行号:
service
service作为服务层主要做相信的业务逻辑处理,数据处理等,将结果返回给controller层
举例:
const db = require('../models/') const findalluser = async () => { const result = await db.user.findall() return result } module.exports = { findalluser }
以下序号代表代码行号:
routers
router管理我们的路由,也就是接口地址
举例:
const user = require('../controller/user') const koa_router = require('koa-router'); const router = koa_router(); router.post('/findall', user.findalluser) module.exports = router
以下序号代表代码行号:
app.js
app.js是我们的入口文件及主文件,我们将router里配置的路由在此引入
const koabody = require('koa-body') koa = require('koa'), router = require('koa-router') router = new router() const user = require('./routers/user'); router.use("/user",user.routes());
这样我们就可以访问:ip:port/user/findall 接口。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。
如对本文有疑问, 点击进行留言回复!!
使用npm命令提示: 'npm' 不是内部或外部命令,也不是可运行的程序的处理方法
Node Express用法详解【安装、使用、路由、中间件、模板引擎等】
Node Mongoose用法详解【Mongoose使用、Schema、对象、model文档等】
网友评论