文档章节

Node系列-快速开始Koa2

龙马行空
 龙马行空
发布于 2016/04/16 01:50
字数 540
阅读 7580
收藏 22
点赞 2
评论 4

1、创建npm配置文件

npm init

2、创建项目文件

// 在项目根目录创建
app.js   // 项目入口文件
start.js // 项目启动文件

3、下载依赖

npm  install  koa@next --save

npm install babel-core --save-dev
npm install babel-polyfill --save-dev
npm install babel-preset-es2015 --save-dev
npm install babel-preset-stage-3 --save-dev

4、编写文件

// start.js
require("babel-core/register")(
    {
        presets: ['stage-3','es2015']
    }
);

require("babel-polyfill");

require("./app.js");

    换行

// app.js
const Koa = require('koa');
const app = new Koa();

app.use(async (ctx, next) => {
  const start = new Date();
  await next();
  const ms = new Date() - start;
  console.log(`${ctx.method} ${ctx.url} - ${ms}ms`);
});


// response
app.use(ctx => {
  ctx.body = 'Hello Koa5555';
});

app.listen(3000);

5、启动项目

// 首先下载
npm install nodemon  -g

    换行

nodemon start

    换行

打开浏览器,访问页面

6、文档:

    koa1文档:https://github.com/koajs/koa

    koa2文档(在分支中):https://github.com/koajs/koa/tree/v2.x

    中国版gitbook之koa  http://book.apebook.org/minghe/koa-action/xtemplate/xtemplate.html

7、其他知识点

    (1)nodemon:每次我们的js文件修改后,node就会自动重启,就省的我们手动去重启了,这样方便了很多

    (2)babel-core:当你想在代码中运行es6代码的话,需要安装babel-core

    (3)babel-cli:而如果你想在终端编译es6或者是运行es6版本的REPL的话,需要安装babel-cli

    (4)babel-polyfill:模拟ES6语法习惯

    (5)babel-core/register:require hook 的作用就是替换原先的require,以便在加载自动对代码进行编译,运行。其实这个做的便是重写require.extensions中对应的扩展名的加载程序,并且默认会判断这个文件是否是node_modules中的模块,如果是的话,那么将不会进行转换。否则的话,会进行转换。

8、尝试中遇到的问题

(1)没有下载安装babel-polyfill

免责说明

1、本博客中的文章摘自网上的众多博客,仅作为自己知识的补充和整理,并分享给其他需要的coder,不会用于商用。

2、因为很多博客的地址看完没有及时做保存,所以很多不会在这里标明出处,非常感谢各位大牛的分享,也希望大家理解。








© 著作权归作者所有

共有 人打赏支持
龙马行空
粉丝 385
博文 127
码字总数 119251
作品 0
房山
前端工程师
加载中

评论(4)

龙马行空
龙马行空

引用来自“i5ting”的评论

Koa 2 相关

项目和文档

- Koa 2 demo https://cnodejs.org/topic/570ae6c012def0933c43abc9
- Koa 2实用入门 https://cnodejs.org/topic/5709959abc564eaf3c6a48c8
- runkoa:不需要了解babel即可使用koa2+async组合 https://cnodejs.org/topic/57090089de442ee71db36bad


runkoa和koa2-demo开源项目里主要是增加里ci和mocha,只要ci和测试,请参见Nodejs开源项目里怎么样写测试、CI和代码测试覆盖率

https://cnodejs.org/topic/558df089ebf9c92d17e73358
谢谢桑大的补充!
i5ting
i5ting
Koa 2 相关

项目和文档

- Koa 2 demo https://cnodejs.org/topic/570ae6c012def0933c43abc9
- Koa 2实用入门 https://cnodejs.org/topic/5709959abc564eaf3c6a48c8
- runkoa:不需要了解babel即可使用koa2+async组合 https://cnodejs.org/topic/57090089de442ee71db36bad


runkoa和koa2-demo开源项目里主要是增加里ci和mocha,只要ci和测试,请参见Nodejs开源项目里怎么样写测试、CI和代码测试覆盖率

https://cnodejs.org/topic/558df089ebf9c92d17e73358
龙马行空
龙马行空

引用来自“溱”的评论

一般都是先npm install必要的包,然后再npm init,这样可以少写很多字,节约时间
恩,不过这样想写init比较符合开发习惯
溱
一般都是先npm install必要的包,然后再npm init,这样可以少写很多字,节约时间
koa2试水

koa2出来已经很长一段时间了,之前一直没有遇上可以练手的项目,这次刚好有了机会,正好折腾一下。 安装 koa2需要7.6.0及以上的node版本,目的是为了支持async await语法,不需要babel支持(...

Yard
2017/04/14
0
0
Node系列-koa2开发实践

一、koa2说明 koa2中支持了很多新的特性,最重要的是对async await的支持 特别注意,koa1和koa2中的很多中间件写法都不一样了。 中间件对koa1和koa2的支持情况:https://github.com/koajs/ko...

龙马行空
2016/04/18
2.2K
0
iKcamp团队制作|基于Koa2搭建Node.js实战(含视频)☞ 环境准备

安装搭建项目的开发环境 🇨🇳 iKcamp 制作团队 原创作者:大哼、阿干、三三、小虎、胖子、小哈、DDU、可木、晃晃 文案校对:李益、大力萌、Au、DDU、小溪里、小哈 风采主播:可木、阿干、...

2017/12/18
0
0
KoaHub.js 2.0.0 发布,Node.js web快速开发框架

KoaHub.js 2.0.0 发布了。主要更新如下: 【升级】升级koa2和依赖 【优化】内置body,session,cors,static中间件 【新增】新增this.validate,数据验证。 【新增】koahub.js入门视频教程,...

einsqing
2017/03/01
1K
4
构建koa2+sass开发环境

构建koa2+sass开发环境 四号程序员2018-01-051 阅读 Node.js koa2是”下一代Node.js的Web开发框架”,与Express相比,更加简洁、健壮。 sass是比较传统的css拓展语言,本文说一下如何构建koa...

四号程序员
01/05
0
0
轶哥/koa2-API-scaffold

Koa2 RESTful API 服务器脚手架 这是一个基于Koa2的轻量级RESTful API Server脚手架,支持ES6。 注意:因升级Koa版本至2.3.0,为配合相应的依赖项,故需要Node.js版本大于等于v8.0.0,NPM大于...

轶哥
2017/07/20
0
0
通过实例分析javascript中的“中间件”

介绍 如果你使用过redux或者nodejs,那么你对“中间件”这个词一定不会感到陌生,如果没用过这些也没关系,也可以通过这个来了解javascript中的事件流程。 一个例子 有一类人,非常的懒(比如...

shiyangzhaoa
2017/09/03
0
0
Angular的开发脚手架Oniangular使用讲解

Oniangular 一个Angular开发的脚手架,前端UI框架使用NG-ZORRO,服务端用koa2。 相关技术:Angular2、Koa2、NG-ZORRO等。 项目使用的是Angular5,这里用Angular2代称是便于关联网友搜索。 实...

小虎Oni
2017/12/13
0
0
基于 Koa 的快速web开发框架--chestnut-app

chestnut-app是一个基于KOA2的快速web开发框架,要求node版本为7.X和8.X 内置了常用中间件(请求体解析、路由控制、会话控制、路由过滤器等)、多进程启动和proxy协议代理。 并且提供常用工具类...

nandy007
2017/08/08
132
0
Node.js MVC 框架--Mysrv

Mysrv 是一款基于Koa2的Node.js MVC框架。 功能特色 支持 式 URL 路由 模块化开发 将一个页面拆分为多个子模块,加载子模块时会执行完整的action,不是仅仅是模版 默认使用 作为模版引擎 基于...

yuking
2017/03/11
110
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

JPA @MappedSuperclass 注解说明

基于代码复用和模型分离的思想,在项目开发中使用JPA的@MappedSuperclass注解将实体类的多个属性分别封装到不同的非实体类中。 1.@MappedSuperclass注解只能标准在类上:@Target({java.lang....

海博1600
11分钟前
0
0
Scala Configuration 相关API

Play使用了 Typesafe config library,但是也提供了一个有着更多Scala高级特性的的 Configuration 封装。不熟悉Typesafe配置的开发者可以移步 configuration文件的语法和特性文档。 读取配置...

Landas
今天
1
0
使用cookie技术 记住账号

1. 效果 2. 实现过程 2.1 前端 将用户的选中传递给后台 这个参数的获取是 参考:https://my.oschina.net/springMVCAndspring/blog/1860498 // var rememberLogin = $("#rememberLoginId").i...

Lucky_Me
今天
1
0
《趣谈网络协议》02之网络分层的真实含义

一、提出问题 1.提出问题 当你听到什么二层设备、三层设备、四层 LB 和七层 LB 中层的时候,是否有点一头雾水,不知道这些所谓的层,对应的各种协议具体要做什么“工作”? 2.这四个问题你弄...

aibinxiao
今天
2
0
Python3学习日志二 Python中的集合set和字典dict

1.集合set 定义一个集合set 我们可以看到定义集合set有两种不同的形式,如果要定义一个空的集合set不能用{}而是要用set();另外,集合是无序的,而且set中的元素是不可重复的,如果你定义了一...

Mr_bullshit
今天
0
0
adb 操作指令详解

ADB,即 Android Debug Bridge,它是 Android 开发/测试人员不可替代的强大工具,也是 Android 设备玩家的好玩具。 注:有部分命令的支持情况可能与 Android 系统版本及定制 ROM 的实现有关。...

孟飞阳
今天
0
0
nodejs安装以及环境配置(很好的node安装和配置文章,少走很多弯路)

一、安装环境 1、本机系统:Windows 10 Pro(64位) 2、Node.js:v6.9.2LTS(64位) 二、安装Node.js步骤 1、下载对应你系统的Node.js版本:https://nodejs.org/en/download/ 2、选安装目录进...

sprouting
今天
1
0
Redisson

了解了Redisson,发现使用挺简单的,接下来准备深入学习一下。 Redisson介绍 Redisson是架设于Redis基础之上的一个Java驻内存数据网格(In-Memory Data Grid) Redisson在基于NIO的Netty框架上...

to_ln
今天
0
0
python有哪些好玩的应用实现,用python爬虫做一个二维码生成器

python爬虫不止可以批量下载数据,还可以有很多有趣的应用,之前也发过很多,比如天气预报实时查询、cmd版的实时翻译、快速浏览论坛热门帖等等,这些都可以算是爬虫的另一个应用方向! 今天给...

python玩家
今天
0
0
python爬虫日志(3)-爬去异步加载网页

在浏览器检查元素页面中,选取Network中的XHR选项即可观察每次加载页面,网页发出的请求,观察url的规律即可利用封装的函数对每一页进行爬取。

茫羽行
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部