node项目中koa2 环境搭建
Koa2学习(一)环境搭建
- koa2脚手架
- koa2服务安装
- koa2-generator目录结构
什么是 Koa2
koa 是由 Express 原班人马打造的,致力于成为一个更小、更富有表现力、更健壮的 Web 框架。 使用 koa 编写 web 应用,通过组合不同的 generator,可以免除重复繁琐的回调函数嵌套, 并极大地提升错误处理的效率。koa 不在内核方法中绑定任何中间件, 它仅仅提供了一个轻量优雅的函数库,使得编写 Web 应用变得得心应手。
检查版本
在node版本大于v7.6.0的情况下,可以直接安装使用koa2
$ node -v
v8.9.4
要在 node < 7.6 版本的 Koa 中使用 async
方法, 官方推荐使用babel's require hook
。
require('babel-register');
// 应用的其余 require 需要被放到 hook 后面
const app = require('./app');
要解析和编译 async
方法, 你至少应该有 transform-async-to-generator
或 transform-async-to-module-method
插件.
例如, 在你的 .babelrc 文件中, 你应该有:
{
"plugins": ["transform-async-to-generator"]
}
koa-generator
是一款快速生成koa服务的脚手架工具,和express-generator类似。
通过应用生成器工具 koa 可以快速创建一个应用的骨架。
快速安装
全局安装脚手架工具:
$ npm install -g koa-generator
进入到项目文件夹目录执行生成命令:
$ koa2 <project_name>
安装依赖:
$ npm install
启动服务:
$ npm start
浏览器浏览页面:
打开浏览器,输入localhost:3000 ,在浏览器界面看到
此时,你已经成功跑通了第一个简单的koa2服务
koa-generator参数
在创建项目时,有一些定制化的参数,可选参数:
-h --help
帮助
-V --version
版本号
-e --ejs
添加ejs模板引擎支持(默认是jade)
--hbs
添加hbs模板引擎支持(默认是hbs)
-H --hogan
添加hogan.js支持
-c --css <engine>
添加css样式 支持 less sass styus css(默认是css)
--git
(g小写) 添加 .gitignore
-f --force
force on non-empty directory
目录结构
│ app.js 入口文件
│ package.json
│
├─bin
│ www node启动文件
│
├─public 静态资源
│ ├─images
│ ├─javascripts
│ └─stylesheets
│ style.css
│
├─routes
│ index.js 路由入口
│ users.js 开发者配置的路由
│
└─views 页面层
error.pug
index.pug
layout.pug
可以看到,整体页面结构非常简单,就是一个最最基本的服务层骨架。
- 如何让nginx显示文件夹目录
- Facebook Graph API(2)--读取数据之picture
- 使用Dockerfile构建镜像-Docker for Web Developers(5)
- 2018年程序员的出路有哪些
- CSS魔法堂:不得不说的Containing Block
- Facebook Graph API(1)—介绍
- MongoDB学习系列(1)--入门介绍
- 2018年人工智能行业市场预测:市场规模有望突破200亿元大关
- Javascript对象的方法赋值
- CentOS挂载硬盘
- 使用jQuery UI的draggable和droppable完成拖拽功能--介绍
- Angular企业级开发(6)-使用Gulp构建和打包前端项目
- CSS魔法堂:重拾Border之——解构Border
- Angular企业级开发(7)-MVC之控制器
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Kafka——分布式的消息队列
- Scala——多范式, 可伸缩, 类似Java的编程语言
- Storm——分布式实时流式计算框架
- Vue实现复制excel表格内容粘贴至网页
- Sqoop——将关系数据库数据与hadoop数据进行转换的工具
- Sqoop导入数据时异常java.net.ConnectException: Connection refused
- Flume——高可用的、高可靠的、分布式日志收集系统
- Hadoop技术(三)数据仓库工具Hive
- Hadoop技术(一)分布式文件系统HDFS
- Docker技术( 容器虚拟化技术 )
- 分布式事务处理技术之LCN
- Swagger技术(接口文档实时动态生成工具)
- 大数据学习之Linux基础
- Spring全家桶之SpringData——Spring Data JPA
- 异常 object references an unsaved transient instance - 的解决