Just another koa-seed-project.
搭建一个 koa 的脚手架并不困难,但就如其他"体力活"一样,
我希望只通过一个最小化的"容器"去启动一个应用,它大概只需要以下几个功能就可以了,重要的是,它的目录结构应该是清晰的,可维护的:
核心思想:模块即同名文件
所以,let-us-koa 的原理非常简单,如果你想快速跑起来一个 koa 应用,你可以这么做:
$ git clone https://github.com/qddegtya/let-us-koa
$ cd let-us-koa
$ npm install
$ npm run start
在 modules 下面新建目录即可,目录名称就是模块加载器自动 prefix 的一级路由名称,比如我们这里的 api 和 home
分别对应
/api
/home
模块必须包含的文件
app.conf.json // 模块配置文件
controllers.js // 控制器
{
"routes": [
// 路由规则
// [HTTP 方法]#[/your route]#[controller]
"GET#/version#getApiVersion"
],
"active": true // 模块是否激活
}
'use strict'
// 只需要导出对应的方法即可
module.exports = {
getApiVersion: function* () {
this.body = {
'version': 'v1'
}
}
}
{
// 子模块目录
"modules": "modules",
// 上传目录
"upLoadDir": "public/uploads",
// 自定义中间件存放目录
"middlewareDir": "middlewares",
// 子模块渲染服务的 view path
"subModuleViewPathName": "views",
// 全局渲染选项
"renderSettings": {
"autoescape": true,
"cache": "memory",
"ext": "html"
}
}
应用级中间件
推荐把加载逻辑写进 middleware.js 里
路由级中间件
let-us-koa 自动为你处理了这块中间件的加载逻辑
你可以参考下面的配置:
{
"routes": [
"time|log|GET#/version#getApiVersion"
],
"active": true
}
它表示,该路由将经过 time, log 中间件,对应的源文件就是 middlewares 下的同名文件,当然,你可以在全局的 app.conf.g.json 中更改这个配置
如果你的某个子模块需要挂载渲染方法,那你必须显式地在子模块 app.conf.json 中声明 needRender 选项
{
"routes": [
"GET#/#getHomePage"
],
"active": true,
"needRender": true
}
这样,let-us-koa 就会自动为你挂载这个 render 方法。
idea: 比如一些 API 服务模块,可能不需要渲染服务,那就没有必要构建 render
默认托管在种子项目根目录下的 public
一个"尽量最小化"的基于 koa 的 web server 容器,其实就可以跑起来一些小应用,这些应用也许不需要持久化存储等复杂功能的支持,比如它只需要一个简单的渲染服务?
瞧,我们可以利用它快速搭建一个内部的研发平台导航站点,It's Cool.
同时,希望给正在学习koa的你提供一个这样的脚手架,让你可以快速起手。
So, Let us Koa!
地址:http://www.imooc.com/article/274059 一、前置知识 在理解koa-bodyparser原理之前,首先需要了解部分HTTP相关的知识。 1、报文主体 HTTP报文主要分为请求报文和响应报文,koa-bodyparser主要针对请求报文的处理。 请求报文主要由以下三个部分组成: 报文头部 空行 报文主体 而koa-bodyparser中的body
node服务中,通常需要对所有的请求设置统一的响应头,比如 "Content-Type": "application/json" 而在使用express和koa等框架时,通常会利用express-router和koa-router实现这一操作 在express-router中的实现代码是 let router = express.Router(); router.use(function
koa express Express is one of the most popular Node.js frameworks out there. With about about 4+ million weekly downloads, Express has clearly made its mark in the world of Node.js and JavaScript. Exp
一、前置知识 在理解koa-bodyparser原理之前,首先需要了解部分HTTP相关的知识。 1、报文主体 HTTP报文主要分为请求报文和响应报文,koa-bodyparser主要针对请求报文的处理。 请求报文主要由以下三个部分组成: 报文头部 空行 报文主体 而koa-bodyparser中的body指的就是请求报文中的报文主体部分。 2、服务器端获取报文主体流程 HTTP
简介 koa 是由 Express 原班人马打造的,致力于成为一个更小、更富有表现力、更健壮的 Web 框架。 使用 koa 编写 web 应用,通过组合不同的 generator,可以免除重复繁琐的回调函数嵌套, 并极大地提升错误处理的效率。koa 不在内核方法中绑定任何中间件, 它仅仅提供了一个轻量优雅的函数库,使得编写 Web 应用变得得心应手。 安装 Koa 依赖 node v7.6.
function App(){ } App.prototype = { use(fn){ this.fns.push(fn) }, fns:[], start(){ let i=0; let fns = this.fns; function f(){ fns[i]("s",()=>{ i++; if(fns[i]){ f() }
上篇Node.js学习笔记 rabbitmq(本地服务自行安装) 1.中间件 npm install amqplib --save 2.配置及封装 新建配置文件 /config/rabbitmqConfig.js 配置内容根据自行修改 const rabbitmq = require('amqplib') const config = { // protocol: 'amqp',//协议
Github Issue: https://github.com/alibaba/tengine/issues Dingtalk user group: 23394285
描述 (Description) 方法seed()设置用于生成随机数的整数起始值。 在调用任何其他随机模块函数之前调用此函数。 语法 (Syntax) 以下是seed()方法的语法 - seed ( [x] ) Note - 此函数不能直接访问,因此我们需要导入种子模块,然后我们需要使用随机静态对象调用此函数。 参数 (Parameters) x - 这是下一个随机数的种子。 如果省略,则需要系
前言 开箱即用的多页面模板, 基于 webpack4 babel7 开发可复用的现代化网站, 解决非 SPA 应用, html 复用, 模块化开发编译等问题. 如果感兴趣该项目, 请点个 star 及时关注项目更新, 请点个 watch 项目 bug, 请提 issue Online demo 旧版分支 1.x 新版本 2.x 使用webpack-chain进行构建程序 重构整体页面配置, 包括模
No longer under active maintenance For starting a new project consider Angular CLI. Read more here.
NGXP Seed A "simple" starter project to create native mobile and web apps with single shared code base using angular and nativescript. It is designed to plug to the spring-rest-api-starter backend. Th
AngularJS Seed 是典型 AngularJS web 应用的应用骨架,可以快速启动你的 AngularJS webapp 项目和这些项目的开发环境。 AngularJS Seed 包括一个示例 AngularJS 应用,预配置安装 Angular 框架,为满足即时 Web 开发提供一些开发和测试工具。Seed 应用只是展示如何连接两个控制器和视图。