前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >轻量级 Node.js Web 框架 Daruk2.0 正式版发布了!

轻量级 Node.js Web 框架 Daruk2.0 正式版发布了!

作者头像
五月君
发布2020-09-17 11:05:24
1.1K0
发布2020-09-17 11:05:24
举报
文章被收录于专栏:Nodejs技术栈Nodejs技术栈

推荐一个开源的轻量级 Node.js Web 框架 Daruk,作者 @小爝,文末阅读原文可在 Github 进行关注,正文从下面开始~

Daruk 是一款基于 Koa2,使用 Typescript 开发的轻量级 web 框架。Daruk 的初衷是让人们可以更方便的开发 Nodejs Web 应用并能够体会到 Typescript 编程的乐趣。Daruk 本身 100%基于 Typescript 开发,使用 inversifyjs 的 IoC 容器管理依赖,让开发者享受最佳的 OOP 和 IoC 的编程体验。

Daruk1.0 发布的时候,我们提供了基于 Koa 的约定格式模块加载机制,并使用了 Typescript 来重构了内部的 Daruk 版本,但是我们发现在使用的过程中(1年多)的时间里,按照目录约定和脚手架的开发方式,还是会给开发者带来诸多不便,并且框架并没有那么的 ts 化味道。

所以我们针对上面的问题,在经过使用 InversifyJS 重构后的2.0,今天终于正式发布了。

安装和使用 Daruk2.0会将非常的方便,新手入门也很容易,可以让开发者,尤其是 koa 开发者更方便的体会到 ts 编写后端代码的便利。

如果你没有接触过 nestjs,但是你又想使用 IoC 编程模型来进行后端 nodejs 业务开发,Daruk2.0是你一个很好的起点和开始。

代码语言:javascript
复制
npm add daruk ts-node typescript

安装完毕后,配置 tsconfig 文件:

代码语言:javascript
复制
{
  "compileOnSave": true,
  "compilerOptions": {
    "target": "es2017",
    "module": "commonjs",
    "sourceMap": true,
    "outDir": "./build",
    "rootDir": "./src",
    "typeRoots": [],
    "types": [],
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true
  },
  "exclude": ["node_modules"],
  "include": ["./src/**/*.ts"]
}

使用 daruk 编写 web 服务:

代码语言:javascript
复制
import { DarukServer, controller, get, DarukContext } from "daruk";

(async () => {
  const myapp = DarukServer();

  @controller()
  class Index {
    @get("/")
    public async index(ctx: DarukContext) {
      ctx.body = "hello world";
    }
  }

  await myapp.binding();
  myapp.listen(3000);
})();

编写 npm script:

代码语言:javascript
复制
{
  "scripts": {
    "dev": "ts-node --project tsconfig.json --files src/index.ts",
    "build": "tsc"
  }
}

有哪些更新?

内置了 koa-body,不再需要集成外部中间件。使用 InversifyJS 进行重构,对外暴露大量装饰器对开发者类提供能力。新增内置了多个 request 和 response 链路的方法装饰器。提供了 plugin 插件的机制,内部 build_in 的大部分模块也是基于插件开发的。简化了 API 和目录约定方式,不再依赖 daruk-cli,可以更方便的自己定制脚手架和开发目录。完善了教程文档和 typedoc。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-09-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Nodejs技术栈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 有哪些更新?
相关产品与服务
消息队列 TDMQ
消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档