当前位置: 首页 > 软件库 > Web应用开发 > Web框架 >

koa2-easy

Easy way to use koa2
授权协议 Readme
开发语言 JavaScript
所属分类 Web应用开发、 Web框架
软件类型 开源软件
地区 不详
投 递 者 东方富
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

注意:

请使用Node6以上版本,获得更好的性能与ES6支持。启用Babel-es2017,不再对一些Node6已支持的特性转码。

起因

因为Koa2已经在蓬勃发展中,Async/Await能切实的避免回调地狱。所以基于Koa2订制了一套模板。

全局安装koa2-easy,之后使用koa2命令即可在当前目录一键生成服务端程序。地址为:当前目录/koa2-easy

npm i koa2-easy -g

koa2

cd koa2-easy && npm i (推荐使用cnpm)

功能

  1. 渲染模板(artTemplate
  2. 发送静态文件,如HTML文件。
  3. 编写自定义路由与Restful Api,默认支持CORS跨域
  4. 读取post数据
  5. 纯ES6/7编写,使用koa2的Async/Await,避免回调地狱
  6. 默认支持gzip,减少传输体积,加快传输速度
  7. 支持文件上传
  8. 开箱即用,无需折腾
  9. 支持TypeScript模板

启动

直接运行run.js即可
因为Koa2使用babel和ES7的Async/Await,所以需要使用babel转译启动,所以必须运行run.js,而非app.js。

node run.js

开发模式

检测到文件变动,会自动重启服务器

npm i
npm run dev

服务器部署

npm i pm2 -g
npm run pm2

指定端口启动

PORT=8000 npm run dev
PORT=8000 npm run pm2

把8000替换成任何你想使用的端口即可

配合Nginx实现反向代理(可选)

推荐使用VeryNginx实现。

具体配置(需要先安装VeryNginx):先配置一个 Matcher : host=app.xxxx.com ,用来提取出来所有访问 host 为 app.xxxx.com 的请求然后配置 Proxy Pass 把这个请求转发到 127.0.0.1:3000 就可以了

使用

需要具有ES6基础。

模板渲染

// router/index.js
router
  .get('/', async ctx => {
    // 模板渲染,第一个参数为模板名称
    // 模板放置于views文件夹中
    ctx.body = ctx.render('index', { title: 'Koa2-Easy' })
  })

发送静态HTML文件

// router/index.js
router
  .get('/index', async (ctx, next) => {
    // 发送静态文件
    await ctx.send(ctx, 'index.html', { root: 'static/index' })
  })

HTML文件中,静态文件的路径处理

把HTML文件放入static文件夹中。单独开辟文件夹。
如首页index.html,则放入/static/index文件夹。引用CSS等文件时,需加入文件夹名称。

<!-- /static/index/index.html -->
<link rel="stylesheet" type="text/css" href="/index/css/index.css">

发送JSON数据

直接将ctx.body设置为json格式即可

// router/test.js
router
  .get('/json', (ctx, next) => {
    ctx.body = { test: 'json' }
  })

读取post数据

ctx.request.body就是post发送的数据

// router/test.js
router
  .post('/post', (ctx, next) => {
    ctx.body = ctx.request.body
  })

添加新路由

按照router文件夹中范例编写,并在app.js中添加即可。

// 添加/api路由

// 将api前缀设置为/api
const router = new Router({
  prefix: '/api'
})

// 对Api进行操作
router
  .get('/', (ctx, next) => {
    ctx.body = "This is Api page"
  })
// 在app.js中引用
import api from './router/api'
app.use(api.routes())
  • GitHub地址,欢迎大家star koa-easywechat koa-easywechat是一个微信公众号开发中间件. 由于使用的是koa2,异步开发使用async/await的写法,所以请保证你的node版本>=7.6 安装 $ npm install koa-easywechat -S 复制代码 API 快速开始 注意:koa-easywechat中间件要写在最前面,也就是要第一个use,

  • vue-easy-renderer 是一个基于 vue-server-renderer 的服务端渲染工具,他提供了更简单的方式来实现vue的服务端渲染,支持koa.js和express.js 安装 npm install vue-easy-renderer -S Peer Dependency npm i vue vuex vue-router vue-loader vue-server-rend

  • seemnite项目是本人做的一个博客,主要目的是学习 node koa2 mongoose 项目预览 本文主要讲述项目的过程,希望对同样困惑的朋友提供一些参考 在开始前,我简略的跑了下以下库,并对ssr有了一定的认识 vue-hackernews easy-mock vueblog webpack的配置主要是参(cao)考(xi) vue-hackernews 和 easy-mock 不过,过程

  • "dependencies": { "multer": "^1.2.0",  "node-schedule": "^1.2.1", "body-parser": "^1.15.2", "ali-oss": "^5.1.1", "amqp": "^0.2.6", "archiver": "^2.1.1", "async-busboy": "^0.6.2", "bluebird": "^3.5.1",

  • seemnite项目是本人做的一个博客,主要目的是学习 node koa2 mongoose 项目预览 本文主要讲述项目的过程,希望对同样困惑的朋友提供一些参考 在开始前,我简略的跑了下以下库,并对ssr有了一定的认识 vue-hackernews easy-mock vueblog webpack的配置主要是参(cao)考(xi) vue-hackernews 和 easy-mock 不过,过程

  • node koa When you want to have real time updates on a web application, you can rely on old-fashioned periodic polling or try to use some push capable modern technology. Your first impulse may be using

 相关资料
  • Koa2-blog(有问题可以加qq群:725165362) node+koa2+mysql (欢迎star) 现在最新的代码有变动,请参照最新的代码,新增了上传头像、分页、markdown语法等 教程 Node+Koa2+Mysql 搭建简易博客 创建数据库 登录数据库 $ mysql -u root -p 创建数据库 $ create database nodesql; 使用创建的数据库 $

  • Koa2 Boilerplate 这是团队近两年的 Koa2 + ES 2017 做 API 项目的最佳实践,项目中用到一些新的 Feature,并完成了从 request 到 service 和 DB(Sequlize)到 response 的全部流程。同时也包含了一些基本的 middleware。 项目用到的功能 �� Koa2 & koa-router Koa 相对于 Express 更吸引

  • 基于koa2的代理工具 功能 代理http和https 转发本地请求到网络 本地服务器 本地模拟数据配置 解析smarty模板 随意修改请求和响应结果 安装 安装node之后执行 npm install koa2-proxy 使用 var proxy = require('koa2-proxy');// 本地静态服务器proxy.static(__dirname);// 本地模拟文件proxy.m

  • koa2-winston koa2 version winston logger like express-winston Add logger to your koa2 server in 3 lines 中文介绍 koa2-winston Usage Installation Quick Start Configuration Examples Do not record any reques

  • 《Koa2进阶学习笔记》已完结 序言 从2017年2月份开始写这本开源电子书,是为了记录自己的学习轨迹和分享技术心得,本开源书的Koa2的基础进阶教程已经完结,更多的Koa.js的高阶学习会在后续新开几本书进行探索。感谢这一年来所有读者的关注!O(∩_∩)O。 本书为Koa.js 2.x 的入门书籍,如果想了解更多 Koa.js 的原理,可阅读 《Koa.js 设计模式-学习笔记》 更多前端技术学

  • Koa2 RESTful API 服务器脚手架 这是一个基于 Koa2 的轻量级 RESTful API Server 脚手架,支持 ES6。 约定使用 JSON 格式传输数据,POST、PUT、DELET 方法支持的 Content-Type 为 application/x-www-form-urlencoded、multipart/form-data、application/json可配置支持