thinkjs - 基于Promise的Node.js MVC框架(Nodejs)

thinkjs - 基于Promise的Node.js MVC框架(Nodejs)

介绍

thinkjs是奇舞团开源的一款Node.js MVC框架,该框架底层基于Promise来实现,很好的解决了Node.js里异步回调的问题。thinkjs具有如下的特性:

  • 支持Http、命令行、WebSocket、Restful等多种访问方式
  • C(Core) + B(Behavior) + D(Driver)架构
  • 高度封装的Model,无需手工写sql语句
  • 封装了Db、Session、Cache等功能
  • 开发模式下修改后立即生效

由来

Node.js下的框架莫过于express了,但express并没有解决异步带来的开发不便的问题,同时express提供的功能过于简单,实际项目中要写很多代码。虽然koa框架使用es6 generator function解决了一些异步带来的问题,但需要在非稳定版0.11.x下才能运行。

鉴于此,thinkjs底层使用Promise来解决异步嵌套的问题,同时参考了优秀的PHP框架ThinkPHP,让Node.js下开发更加简单高效。

快速使用

安装thinkjs非常简单,使用如下的方式:

npm install -g thinkjs-cmd

安装完成后,系统下就有thinkjs命令了,可以通过下面的命令快速创建项目:

# 在合适的位置创建一个新目录,new_dir_name为你想创建的文件夹名字
mkdir new_dir_name; 
# 通过thinkjs命令创建项目
thinkjs new_dir_name

项目创建完成后,如果当前环境有浏览器,会自动打开浏览器访问 http://127.0.0.1:8360, 看到hello thinkjs表示项目创建成功了。

生成的目录结构如下:

├── App
│   ├── Common
│   │   └── common.js    ---- 通用函数文件,一般将项目里的一些全局函数放在这里
│   ├── Conf
│   │   └── config.js    ---- 项目配置文件
│   ├── Lib
│   │   ├── Behavior     ---- 行为类存放位置
│   │   ├── Controller
│   │   │   └── Home
│   │   │       └── IndexController.js   ---- 逻辑控制类
│   │   └── Model        ---- 模型类
│   ├── Runtime          ---- 运行时的一些文件
│   │   ├── Cache        ---- 缓存目录
│   │   ├── Data         ---- 数据目录
│   └── View
│       └── Home
│           └── index_index.html      ---- 模版文件,默认使用ejs模版引擎
├── ctrl.sh              ---- 项目启动、停止脚本
└── www
    ├── index.js         ---- 入口文件
    └── resource         ---- 静态资源目录

并且默认为开发模式,该模式下文件修改后立即生效,不用重启Node.js服务。

更多


10 回复

thinkjs - 基于Promise的Node.js MVC框架(Nodejs)

介绍

thinkjs 是奇舞团开源的一款 Node.js MVC 框架,它基于 Promise 实现,有效解决了 Node.js 中异步回调的问题。thinkjs 的主要特性包括:

  • 支持多种访问方式:HTTP、命令行、WebSocket 和 RESTful。
  • 采用 C (Core) + B (Behavior) + D (Driver) 架构。
  • 提供高度封装的 Model,无需手动编写 SQL 语句。
  • 封装了数据库操作、Session 和缓存等功能。
  • 开发模式下修改后立即生效。

由来

尽管 Node.js 下有许多流行的框架,如 Express 和 Koa,但它们在处理异步问题上仍存在不足。Express 并没有很好地解决异步带来的开发不便,而 Koa 虽然使用 ES6 generator function 解决了部分问题,但在非稳定版环境下运行。因此,thinkjs 选择了基于 Promise 来解决异步嵌套问题,并借鉴了 PHP 框架 ThinkPHP 的设计理念,使得 Node.js 开发变得更加简单高效。

快速使用

安装

npm install -g thinkjs-cmd

创建项目

mkdir my_project
cd my_project
thinkjs new

启动项目

node app/index.js

项目创建完成后,若当前环境有浏览器,会自动打开浏览器访问 http://127.0.0.1:8360,看到 hello thinkjs 表示项目创建成功。

项目目录结构

├── App
│   ├── Common
│   │   └── common.js
│   ├── Conf
│   │   └── config.js
│   ├── Lib
│   │   ├── Behavior
│   │   ├── Controller
│   │   │   └── Home
│   │   │       └── IndexController.js
│   │   └── Model
│   ├── Runtime
│   │   ├── Cache
│   │   ├── Data
│   └── View
│       └── Home
│           └── index_index.html
├── ctrl.sh
└── www
    ├── index.js
    └── resource

示例代码

IndexController.js

module.exports = class IndexController {
    async indexAction() {
        return 'hello thinkjs';
    }
}

index_index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Hello ThinkJS</title>
</head>
<body>
    <h1><%= title %></h1>
</body>
</html>

config.js

module.exports = {
    port: 8360,
};

更多

通过以上介绍和示例代码,希望你能够快速上手并使用 thinkjs 进行 Node.js 项目的开发。


虽然不太喜欢thinkphp这种模式,还是支持一下。可以帮到很多人啊

看了看你们的博客,内容很丰富啊,如果是原创的,欢迎全文发来社区这里,帮你们加精宣传宣传。

顶个!

支持哦!

看了看还行

TP优秀。。。。。。

支持,顶起

支持,不错

思考JS - 基于Promise的Node.js MVC框架

介绍

thinkjs 是由奇舞团开源的一个 Node.js MVC 框架。该框架使用 Promise 来处理异步操作,有效解决了 Node.js 中常见的回调地狱问题。以下是 thinkjs 的一些主要特性:

  • 支持 HTTP、命令行、WebSocket 和 Restful 多种访问方式。
  • 使用 C(Core) + B(Behavior) + D(Driver) 架构。
  • 提供高度封装的 Model,无需手动编写 SQL 语句。
  • 封装了数据库、会话管理和缓存等功能。
  • 开发模式下文件修改后立即生效。

由来

尽管 Node.js 下已有 Express 框架,但它并未解决异步操作带来的复杂性问题。而 Koa 虽然通过 ES6 Generator 解决了一些问题,但需要在不稳定版本中运行。因此,thinkjs 选择了使用 Promise,既解决了异步嵌套的问题,又借鉴了优秀的 PHP 框架 ThinkPHP 的设计理念,使 Node.js 开发更简单高效。

快速使用

安装 thinkjs 很简单,只需执行以下命令:

npm install -g thinkjs-cmd

安装完成后,你可以通过以下命令创建一个新项目:

mkdir new_project_name
cd new_project_name
thinkjs create

创建项目后,系统会在默认端口上启动服务,通常是在 http://127.0.0.1:8360。如果你能看到 hello thinkjs,则表示项目创建成功。

目录结构

生成的目录结构如下:

├── App
│   ├── Common
│   │   └── common.js
│   ├── Conf
│   │   └── config.js
│   ├── Lib
│   │   ├── Behavior
│   │   ├── Controller
│   │   │   └── Home
│   │   │       └── IndexController.js
│   │   └── Model
│   ├── Runtime
│   │   ├── Cache
│   │   ├── Data
│   └── View
│       └── Home
│           └── index_index.html
├── ctrl.sh
└── www
    ├── index.js
    └── resource
  • Common/common.js: 存放项目中的通用函数。
  • Conf/config.js: 项目配置文件。
  • Lib/Behavior: 行为类存放位置。
  • Lib/Controller/Home/IndexController.js: 控制器类。
  • Lib/Model: 模型类。
  • Runtime: 运行时生成的文件,如缓存文件等。
  • View/Home/index_index.html: 默认模板文件,使用 EJS 引擎。

示例代码

以下是一个简单的控制器示例,展示如何在 thinkjs 中处理请求:

// 文件路径: App/Lib/Controller/Home/IndexController.js
module.exports = class IndexController {
  async indexAction() {
    const data = await this.model('User').findAll();
    return this.success(data);
  }
};

上述代码展示了如何定义一个控制器,并使用 this.model 方法获取模型实例,然后调用 findAll 方法查询所有用户数据,最后返回结果。

希望这些信息对你有所帮助!更多详情可以参考官方文档或加入 QQ 交流群进行讨论。

回到顶部