文档章节

Node系列-快速开始Koa2

龙马行空
 龙马行空
发布于 2016/04/16 01:50
字数 540
阅读 7693
收藏 22

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








© 著作权归作者所有

共有 人打赏支持
龙马行空
粉丝 389
博文 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,这样可以少写很多字,节约时间
Node系列-koa2开发实践

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

龙马行空
2016/04/18
2.2K
0
koa2试水

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

Yard
2017/04/14
0
0
iKcamp团队制作|基于Koa2搭建Node.js实战(含视频)☞ 环境准备

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

2017/12/18
0
0
基于React的PC网站前端架构分析

这篇文章是以一个实习生的视角对前端网站架构的一点分析和理解 序 最开始接触前端的时候,是从简单的html、css、js开始的,当时盛行的WEB理念是结构样式行为相分离,即html、css、js分离,独...

Cryptolalia
10/15
0
0
构建koa2+sass开发环境

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

四号程序员
01/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

19《Java核心技术》之什么情况下Java程序会产生死锁?如何定位、修复?

一、提出问题 今天,我们会讨论一些日常开发中类似线程死锁等问题的排查经验,并选择一两修复过或者诊断过的核心类库死锁问题作为例子,希望不仅能在面试时,包括在日常工作中也能对你有所帮...

飞鱼说编程
22分钟前
0
0
golang安装gRpc

安装官方安装命令: go get google.golang.org/grpc 是安装不起的,会报: package google.golang.org/grpc: unrecognized import path "google.golang.org/grpc"(https fetch: Get https:/......

xtof
24分钟前
0
0
linux-centos7 基于等保3的系统安全体系

sshd配置 配置文件:/etc/ssh/sshd_config Note: 更改ssh相关配置后需要重启sshd服务 systemctl restart sshd 参考文档:https://man.openbsd.org/ssh.1 ssh访问控制 AllowUsers <userlist......

阿dai
24分钟前
2
0
Linux学习-1031(rsync同步工具 上)

10.28 rsync工具介绍 10.29/10.30 rsync常用选项 10.31 rsync通过ssh同步 一、 rsync工具介绍 rsync是一个同步工具,在日常的运维中常会用到。它可以本地同步,也实现可以远程两台机器同步。...

wxy丶
36分钟前
1
0
python实战一期:第一天

1. 为什么学习python 1.1 为什么要学Python? Python第一是个非常牛B的脚本语言,能满足绝大部分自动化运维的需求,又能做后端C/S架构,又能用WEB框架快速开发出高大上的Web界面,只有当你自...

laoba
38分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部