Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

thinkkoa

Package Overview
Dependencies
Maintainers
1
Versions
71
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

thinkkoa

A lightweight, scalable for agile development Node.js web framework, based on koa2.

  • 2.4.14
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

ThinkKoa

介绍

npm version Build Status dependencies Status Package Quality

A lightweight, scalable for agile development Node.js web framework, based on koa2.

ThinkKoa - 轻量级可扩展的敏捷开发Node.js框架,支持ES6/7全新特性,支持Koa、Express中间件,基于koa2。

特性

  • 基于koa2

ThinkKoa基于著名的Node.js框架koa2进行了薄封装。扩展了Koa的功能,能够迅速的进行Web开发。

  • 支持Koa/Express中间件

通过简单的引入机制,ThinkKoa可以很好的支持Koa中间件(包括Koa1及Koa2)。还提供了useExp()来使用Express的中间件。大大提升了框架的扩展性及开源模块利用率。

  • 为敏捷开发而生

ThinkKoa是在ThinkKoa团队3年的Node.js项目开发积累中酝酿诞生的,以提升团队开发效率、助力敏捷开发为目的。框架经过公司多个互联网产品上线、迭代以及大流量大并发的考验。

  • 支持多种项目结构和多种项目环境

ThinkKoa默认支持单模块模式,适合简单快速的项目。业务复杂的项目,可以开启多模块支持,功能划分更加清晰。ThinkKoa支持Nginx代理以及pm2部署,适合对稳定性和效率有要求的生产环境。

  • 支持灵活的自定义路由

ThinkKoa除默认的单模块模式(controller/action)及多模块模式(module/controller/action)路由规则以外,还支持用户定制路由。 在项目中增加路由文件配置即可灵活的支持Restful等各种自定义路由。

  • 拥抱 Node.js 8 LTS, 使用 ES6/7 特性来开发项目

Node.js 8支持99%的ES6新特性,并且相对6.0版本提升20%性能。现在使用 async/await 等一系列新特性,让Node.js开发变得赏心悦目。

const {controller, helper} = require('thinkkoa');
const user = require('../model/user.js');

//user controller, controller/user.js
module.exports = class extends controller {
    //login action
    async loginAction(){
        //If it is a get request, the login page is displayed directly
        if(this.isGet()){
          return this.render();
        }
        //Obtaining data by post method
        let name = this.post('username');
        if (helper.isEmpty(name)) {
          return this.fail('username is required');
        }
        let userModel = new user(this.app.config('config.model', 'middleware'));
        //Username matches the corresponding entries in the database.
        let result = await userModel.where({name: name, phonenum: {"not": ""}}).find();
        if(!result){
          return this.fail('login fail'); 
        }
        //Written into session
        await this.session('userInfo', result);
        return this.ok('login success'); 
    }
}

上面的代码我们使用了 ES6 里的 class, let 以及 ES7 里的 async/await 等特性,虽然查询数据库和写入 Session 都是异步操作,但借助 async/await,代码都是同步书写的。

文档

中文文档

快速开始

全局安装thinkkoa_cli

npm install -g thinkkoa_cli@2.x

创建项目

在合适的位置执行命令
think new project_name
进入这个目录
cd project_name

安装依赖

npm install

启动服务

npm start

开始访问

打开浏览器,访问http://localhost:3000

协议

MIT

Keywords

FAQs

Package last updated on 22 Oct 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc