2.3.0 • Published 11 months ago

naily v2.3.0

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
11 months ago

Naily(Nai Core)

基于 Express 实现了一个简易的,无模块系统的 Nest.js。

自动依赖注入特性+无模块系统,企业级开发就算啦,写着玩的,代码写得很垃圾。

使用

只支持 TypeScript,没去特别适配 JavaScript 和 Babel 转译器。如果使用有问题别问我(

安装

需有node^12 + pnpm环境,然后运行 cli 命令:

pnpx naily

一个简单的小示例

main.ts

// 注入你写的控制器
// 必须在导入app对象之前导入 才能被检测到并挂载
import "./main.controller";
// 所有控制器导入之后再导入此装饰器!
import { BootNailyApplication, type CanBoot, IMount } from "../src/app";

@BootNailyApplication
export class Booter implements CanBoot {
  // 实现了main函数
  main(app: IMount): void {
    app.boot(8000);
  }
}

app
  // 使用useMiddleware创建中间件
  .useMiddleware((req, res, next) => {
    // 这里编写您的中间件...
  })
  // 使用useFilter将在全局挂载Filter
  .useFilter(MyFilter)
  // 最后使用boot启动服务器
  .boot(8000);

main.controller.ts

// 导入控制器注解和GET方法注解
import { GetMapping, RequestIp, RestController } from "naily";
// 导入一个服务
import { AppService } from "./main.service";

// 这里导出一个类 用controller装饰起来~
@RestController()
export class AppController {
  // 这里注入一个服务~
  constructor(private readonly appService: AppService) {}
  // 这里用get装饰起来~
  @GetMapping()
  // 使用@RequestIp可以获取到请求发出地的IP地址哦
  public getHello(@RequestIp ip: string) {
    // 返回一个JSON对象吧
    return {
      ip: ip,
      data: this.appService.getData(),
      message: "Hello world",
    };
  }
}

main.service.ts

import { Injectable } from "naily";

// 使用Injectable标记这是一个可以被注入的类
// 说人话就两个字:服务
@Injectable
export class AppService {
  // 随便弄个方法
  getData() {
    return 200;
  }
}

装饰器列表

装饰器说明
RestController控制器 标识一个控制器必须要用这个
GetMapping标识 GET 方法装饰器
PostMapping标识 POST 方法装饰器
OptionsMapping标识 Options 方法装饰器
PutMapping标识 Put 方法装饰器
PatchMapping标识 Patch 方法装饰器
DeleteMapping标识 Delete 方法装饰器
RequestMapping匹配所有方法装饰器
RequestQuery获取 URL Query 装饰器
RequestParam获取 URL Param 装饰器
RequestBody获取 URL Body 装饰器
RequestIp获取 Ip 地址 装饰器
UseFilter使用错误过滤器 |

错误过滤器

参考test/main.filter.ts

感谢

2.3.0

11 months ago

2.2.7

11 months ago

2.2.8

11 months ago

2.2.1

12 months ago

2.1.2

12 months ago

2.0.15

12 months ago

2.0.3

12 months ago

2.2.0

12 months ago

2.1.1

12 months ago

2.0.2

12 months ago

2.2.3

12 months ago

2.1.4

12 months ago

2.0.13

12 months ago

2.0.5

12 months ago

2.2.2

12 months ago

2.1.3

12 months ago

2.0.14

12 months ago

2.0.4

12 months ago

2.2.5

12 months ago

2.1.6

12 months ago

2.0.11

12 months ago

2.0.7

12 months ago

2.2.4

12 months ago

2.1.5

12 months ago

2.0.12

12 months ago

2.0.6

12 months ago

2.2.6

12 months ago

2.0.10

12 months ago

2.0.8

12 months ago

2.1.0

12 months ago

2.0.1

12 months ago

2.0.0

12 months ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago