文档章节

最新Node.js框架:Koa 2 实例demo

i5ting
 i5ting
发布于 2016/04/11 08:07
字数 482
阅读 1105
收藏 6

koa2-demo

Screen-Shot-2016-04-01-at-1.52.56-PM.jpg

这个项目是express风格的最新的Koa 2项目的示例,已集成到koa-generator里,算是集成一些所谓的最佳实践吧

Teck Stack

  • Koa 2
  • nodemon + runkoa(支持async/await,且不需关心babel)
  • pm2 for deployment(服务器部署)
  • express-style middlewares
    • koa-router
    • koa-views
    • koa-static
    • koa-bodyparser

Getting Start

git clone https://github.com/17koa/koa2-demo.git
cd koa2-demo
npm install
npm start

open in browser

http://127.0.0.1:3000/

启动方式

最简单启动方式

node bin/run

最常用的集成nodemon的方式,代码变动会自动重载(其实就是nodemon去执行bin/run)

npm start

支持pm2部署

 #npm run pm2
 pm2 start bin/run 

支持koa2的3种中间件写法

Koa 2是一个 middleware framework, 它提供了 3 种不同类型的中间件写法

  • common function
  • async function(新增)
  • generatorFunction

详见koa 2的文档

支持view层多种模板

koa-views is using consolidate under the hood.

List of supported engines

需要注意的koa2使用的koa-views也是下一版本的koa-views@next,当前项目已经处理过了,不需要再处理的,哈哈

jade

npm i -S jade

in app.js

app.use(views(__dirname + '/views', {
  extension: 'jade'
}));

ejs

npm i -S ejs

in app.js

app.use(views(__dirname + '/views-ejs', {
  extension: 'ejs' 
}));

目录结构

➜  koa2-demo git:(master) tree . -L 2
.
├── LICENSE
├── README.md
├── app.js
├── bin
│   ├── run
│   └── www
├── node_modules
│   ├── co
│   ├── debug
│   ├── ejs
│   ├── jade
│   ├── koa
│   ├── koa-bodyparser
│   ├── koa-convert
│   ├── koa-json
│   ├── koa-logger
│   ├── koa-onerror
│   ├── koa-router
│   ├── koa-static
│   ├── koa-views
│   ├── nodemon
│   └── runkoa
├── package.json
├── public
│   ├── images
│   ├── javascripts
│   └── stylesheets
├── routes
│   ├── index.js
│   └── users.js
├── views
│   ├── error.jade
│   ├── index.jade
│   └── layout.jade
└── views-ejs
    ├── error.ejs
    └── index.ejs

24 directories, 13 files

说明

  • bin/run(runkoa执行bin/www)
  • bin/www是常规koa启动文件,和express的一样
  • views是放默认的jade文件
  • views-ejs是放ejs文件

推荐

如果你喜欢express风格的生成,推荐koa-generator

如果你喜欢babel + koa2可以参考Minimal koa v2 boilerplate.

全文完

© 著作权归作者所有

共有 人打赏支持
i5ting
粉丝 194
博文 68
码字总数 98509
作品 3
东城
私信 提问
node.js学习笔记之koa框架和简单爬虫练习

Koa -- 基于 Node.js 平台的下一代 web 开发框架 koa是由 Express 原班人马打造的,致力于成为一个更小、更富有表现力、更健壮的 Web 框架。 使用 koa 编写 web 应用,可以免除重复繁琐的回调...

前端小攻略
2018/12/14
0
0
Node.js Web 快速开发框架 - Doodoo.js

简介 Doodoo.js -- 中文最佳实践Node.js Web快速开发框架。支持Koa.js中间件,支持模块化,插件,钩子机制,可以直接在项目里使用 ES6/7(Generator Function, Class, Async & Await)等特性...

einsqing
2018/08/21
0
0
iKcamp新书上市《Koa与Node.js开发实战》

内容摘要 Node.js 10已经进入LTS时代!其应用场景已经从脚手架、辅助前端开发(如SSR、PWA等)扩展到API中间层、代理层及专业的后端开发。Node.js在企业Web开发领域也日渐成熟,无论是在API...

iKcamp
2018/12/27
0
0
TypeScript 3 + Koajs + Node.js

转发 TypeScript 3 + Koajs + Node.js 自NodeJS早期以来,Express一直是NodeJS开发人员事实上的标准Web框架。 但是,JavaScript在过去几年中已经走过了漫长的道路,像promises和async函数这样...

durban
2018/09/18
0
0
Koa.js 设计模式-学习笔记

前言 之前写过一本《Koa2进阶学习笔记》作为Koa的入门教程。很多知识点都是一笔带过,没有深入的讲解。这一本书是通过Koa.js的常用中间件实现原理,举一反三来讲解一些Node.js在Web开发过程中...

大灰狼的小绵羊哥哥
2018/11/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

C++ vector和list的区别

1.vector数据结构 vector和数组类似,拥有一段连续的内存空间,并且起始地址不变。 因此能高效的进行随机存取,时间复杂度为o(1); 但因为内存空间是连续的,所以在进行插入和删除操作时,会造...

shzwork
今天
3
0
Spring之invokeBeanFactoryPostProcessors详解

Spring的refresh的invokeBeanFactoryPostProcessors,就是调用所有注册的、原始的BeanFactoryPostProcessor。 相关源码 public static void invokeBeanFactoryPostProcessors(Configu......

cregu
昨天
4
0
ibmcom/db2express-c_docker官方使用文档

(DEPRECIATED) Please check DB2 Developer-C Edition for the replacement. What is IBM DB2 Express-C ? ``IBM DB2 Express-C``` is the no-charge community edition of DB2 server, a si......

BG2KNT
昨天
3
0
Ubuntu 18.04.2 LTS nvidia-docker2 : 依赖: docker-ce (= 5:18.09.0~3-0~ubuntu-bionic)

平台:Ubuntu 18.04.2 LTS nvidia-docker2 版本:2.0.3 错误描述:在安装nvidia-docker2的时候报dpkg依赖错误 nvidia-docker2 : 依赖: docker-ce (= 5:18.09.0~3-0~ubuntu-bionic) 先看一下依......

Pulsar-V
昨天
4
0
学习笔记1-goland结构体(struct)

写在前面:若有侵权,请发邮件by.su@qq.com告知。 转载者告知:如果本文被转载,但凡涉及到侵权相关事宜,转载者需负责。请知悉! 本文永久更新地址:https://my.oschina.net/bysu/blog/3036...

不最醉不龟归
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部