当前位置: 首页 > news >正文

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

文章目录

  • 1.介绍Nest.js
  • 2.安装Nest CLI
  • 3.创建子模块
    • 3.1创建模块与控制器
  • 4.体验Nest.js的接口调用
    • 4.1调用接口(依赖注入方式)
    • 4.2调用接口(不用依赖注入)
  • 5.Nest.js具体描述

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() 装饰器注释的类。
http://www.dtcms.com/a/463095.html

相关文章:

  • wordpress template hierarchyseo平台有哪些
  • 做外贸网站建设南昌网站排名优化报
  • 冲刺校招 打卡 day04
  • mysql数据库学习之SQL优化(八)
  • 超越CNN和Transformer!Mamba结合多模态统领图像任务!
  • 开发网站那个好珠海网站制作策划
  • shtml怎么做网站为什么进不了中国建设银行网站
  • 2017 如何做网站优化wordpress实现预览
  • 02-Media-12-virtual_wbc_rtsp.py 随机位置、颜色和大小显示文本内容并同时进行RTSP推流的示例程序
  • getapp影视APP源码 反编译APP附教程
  • 营销型网站建设微博徐州市工程招标网
  • 网站 制作价格google官网下载
  • Mysql初阶第四讲:Mysql表的约束
  • 企业网站设计好的缺点有哪些餐饮管理和营销方案
  • 怎么样提高网站排名设计衣服网站
  • 查询网站这么做asp个人网站模板下载
  • 做网站用windows还是linux做我的世界壁纸的网站
  • 用 BP 神经网络预测公路运量:从原理到实战全流程
  • 个性个人网站模板成都市青羊区建设局官方网站
  • 专业上海网站建设公司排名凡科建站电话
  • 手机端网站seo济南会做网站的公司
  • 找个人合伙做网站wordpress重建伪静态
  • 蓝牙笔记(1)
  • 简单做一个舒尔特方格小游戏
  • jdk自带调优工具
  • 网站加载速度影响因素网站建设的步骤过程文库
  • 电子商务网站的后台管理系统爱网度假
  • C语言基础之指针3
  • 青岛网站权重提升联兴建设官方网站
  • 北大荒建设集团有限公司网站龙湖镇华南城网站建设