0
点赞
收藏
分享

微信扫一扫

nest.js--一个java和angular风格的node框架

Nest是一套基于Node.js的强大的Web框架,可帮助你轻松构建出高效的、可扩展的应用程序。它是通过结合OOP(面向对象编程)和FP(函数式编程)的最佳理念,采用现代化JavaScript,使用TypeScript构建的。

安装

Git

$ git clone https://github.com/kamilmysliwiec/nest-typescript-starter.git project
$ cd project
$ npm install
$ npm run start

npm

npm i --save @nestjs/core @nestjs/common @nestjs/microservices @nestjs/websockets @nestjs/testing reflect-metadata rxjs

nest@cli

$ npm i -g @nestjs/cli

理念

Javascript是一门非常神奇的计算机语言。它不再是一门只能在浏览器上创建简单动画的语言。现在,前端领域已经开发出了多种绝妙的高性能的框架/库,例如Angular、React 和 Vue, 这些工具大大地提高了我们的开发进程,并且使我们的应用程序变得快速而灵活。

通过Node.Js,我们可以在服务器端使用JavaScript。虽然现在有很多基于Node的库、助手和工具,但是没有任何一个可以解决主要问题-结构体系问题。

特色

1.便于学习-语法结构类似Angular。

2.基于TypeScript构建,同时兼容普通的ES6(强烈建议使用TypeScript).

3.基于著名的(Express/Scoket.io)库,所以可以分享经验。

4.非常有用的依赖注入,内置控制反转容器。

5.分层注入器器—通过使用类型注入创建可重用、松耦合的模块,从而在应用程序中增加抽象性。

6.WebScokets模块(基于scoket.io,虽然你可以使用任何其他使用适配器的库。

7.独特的模块化系统(将你的系统分割成克重用的模块)。

8.消息类型支持的反应微服务(内置transport属性,决定使用TCP或者Redis,但是你可以选择使用任何其他使用CustomTransportStrategy的交流形式)。

9.异常处理layer,异常过滤器,同步和异步pipes layer。

10测试工具

核心概念

Nest的核心概念是提供结构系统,帮助开发只实现最大分层,并提高应用程序的抽象性。

它潜力无限,但是无法解决你的问题。它不仅仅是一套事先准备好的有行为的类,它提供了一套组织现代化应用程序的理念,这种理念使你能够专注与应用程序逻辑。

应用程序构建块 Nest有三种基本的应用程序构建块:模块,控制器,组件。

模块

模块是一个带有 ​​@Module({})​​ 装饰器的类。该装饰器提供元数据,框架使用该元数据组织应用程序结构。 以下是一个简单模块的所有可用属性:

@Module({
modules [ TestModule ],
controllers: [ TestController ],
components: [ TestComponent ],
exports: [ TestComponent ]
})
export class ApplicationModule {}

默认情况下,模块封装每一个依赖,也就是说模块只能在其内部使用组件/控制器。 我们可以将组件实例导出(只有组件可以被导出),这样模块之间就可以共享组件实例了。

控制器

控制层负责处理传入的HTTP请求。控制器是一个带有​​@Controller()​​装饰器的类。

@Controller()
class UsersController {
@Get('users')
getAllUsers(@Res() response) {
res.status(201).json({});
}
}

组件

几乎所有的事物都可以被看作一个组件--​​Service, Repository, Provider​​等。可以通过构造函数将组件注入到控制器或者另一个组件中。

@Component()
class UsersService {
getAllUsers() {
return [];
}
}
举报

相关推荐

0 条评论