第一步:基于node创建一个Nest.js项目

第二步:创建写接口的模块,建立moogodb数据库连接,写添加与查询接口

1.介绍Nest.js

  • Nest 是一个用于构建高效,可扩展的 Node.js 服务器端应用程序的框架。它使用渐进式 JavaScript,内置并完全支持 TypeScript(但仍然允许开发人员使用纯 JavaScript 编写代码)并结合了 OOP(面向对象编程),FP(函数式编程)和 FRP(函数式响应编程)的元素。

  • 在底层,Nest使用强大的 HTTP Server 框架,如 Express(默认)和 Fastify。Nest 在这些框架之上提供了一定程度的抽象,同时也将其 API 直接暴露给开发人员。这样可以轻松使用每个平台的无数第三方模块。

  • Nset.js文档地址

  • 我自己尝试写过一个完整的项目,虽然只有权限控制跟删查改写,但基本功能还是有的,使用的是moogodb,同时有跟我写的Nest项目配套的前端项目可以更直观的去体验功能与调试。

  • Nest项目地址

2.安装Nest CLI

 npm i -g @nestjs/cli // 全局安装脚手架
 nest new project-name // 创建一个基础的Nest.js项目
 npm run start:dev // Nest.js 启动命令
  • 将会创建 project-name 目录, 安装 node_modules 和一些其他样板文件,并将创建一个 src 目录,目录中包含几个核心文件。
src
 ├── app.controller.spec.ts
 ├── app.controller.ts
 ├── app.module.ts
 ├── app.service.ts
 └── main.ts
  • 以下是这些核心文件的简要概述:
    app.controller.ts 带有单个路由的基本控制器示例。
    app.controller.spec.ts 对于基本控制器的单元测试样例
    app.module.ts 应用程序的根模块。
    app.service.ts 带有单个方法的基本服务
    main.ts 应用程序入口文件。它使用 NestFactory 用来创建 Nest 应用实例。

3.创建子模块

  • 一般app开头的模块期望是去用作管理所有子模块

  • 此时需要创建一个模块与控制器:
    模块可以理解成一个集中控制的区域。
    控制器负责处理传入的请求和向客户端返回响应。

3.1创建模块与控制器
// 创建模块
nest g module 模块名称
// 创建控制器
nest g controller 控制器名称
  • **当然有更简洁的命令,在终端输入nest -h

    **
  • 然后就可以看到有很多命令跟简化版,此时就可以试试简化版
// 创建模块 cat 自己定义的名字
nest g mo cat
// 创建控制器 cat 自己定义的名字
nest g co cat
  • 此时就可以在主模块app.module.ts里看到子模块控制器CatController自动被挂载到了主模块上,是不是感觉很像Vue的App入口文件,此时主模块的代码是这样的:
import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { CatController } from './cat/cat.controller';
import { CatModule } from './cat/cat.module';

@Module({
  imports: [CatModule],
  controllers: [AppController, CatController],
  providers: [AppService],
})
export class AppModule {}

4.体验Nest.js的接口调用

4.1调用接口(依赖注入方式)
  • 可以在app.controller.ts文件里明确的看到有一个写好的接口,左边为接口定义,右边为响应的数据,采用的依赖注入的方式写入的,此时看main.ts文件可以看到端口跑在3000上,此时用postman调用下试试,接口响应了定义的返回值
4.2调用接口(不用依赖注入)
  • 可能刚开始还不太了解依赖注入或者觉得这样写太麻烦,那就给改造下
  • 更过测试,接口返回值还是没变化,证明改造没问题

5.Nest.js具体描述

  • Nest 旨在成为一个与平台无关的框架。 由于平台无关性,我们以创建可重用的逻辑组件,开发人员可以跨越多种不同类型的应用程序来使用这些组件。 从技术上讲,创建了适配器以后,Nest 可以与任何 node.js 的 HTTP 框架一起工作。如果你有express基础,那么Nest.js完全兼容
  • Nest.js主要使用装饰器,如果你用了解SpringBoot会发现这种写法更偏向于Java
  • Nest.js会暴露很多固定的API,很多时候并不需要关心具体逻辑,就能快速上手,只需调用固定的API就可以实现想要的功能
  • Nest.js的各种连接主要是使用的依赖注入,是这样描述的:
    依赖注入(Providers) 是 Nest 的一个基本概念。许多基本的 Nest 类可能被视为 provider - service, repository, factory, helper 等等。 他们都可以通过 constructor 注入依赖关系。 这意味着对象可以彼此创建各种关系,并且“连接”对象实例的功能在很大程度上可以委托给 Nest运行时系统。 Provider 只是一个用 @Injectable() 装饰器注释的类。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,179评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,229评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,032评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,533评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,531评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,539评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,916评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,813评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,568评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,654评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,354评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,937评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,918评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,152评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,852评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,378评论 2 342

推荐阅读更多精彩内容