美文网首页
基于node创建一个Nest.js项目

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

作者: 许___ | 来源:发表于2023-08-24 10:02 被阅读0次

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() 装饰器注释的类。

相关文章

  • Vue+MySQL+Express vue链接数据库

    用vue-cli脚手架工具创建一个基于webpack的Vue项目 安装node node官网地址:https://...

  • Vue+MySQL+Express

    用vue-cli脚手架工具创建一个基于webpack的Vue项目 安装node node官网地址:https://...

  • 1、Nest.js 项目搭建

    Nest.js 5.0 系列教程。 什么是Nest.js? Nest.js 是 Node.js 平台下,兼容 Ty...

  • Nest.js 项目搭建

    Nest.js 5.0 系列教程。 什么是Nest.js? Nest.js 是 Node.js 平台下,兼容 Ty...

  • egg.js 上传文件

    现在node.js 使用的框架有 Express,koa 还有分别基于nest.js 和 egg.js 。据说ne...

  • 7_express

    Express框架 首先我们先安装Node.js 0.基于express框架,创建项目。 创建工程目录 通过npm...

  • vue环境安装

    node.js安装 cnpm安装 cpnm全局安装vue-cli 目录下创建一个基于 webpack 模板的新项目...

  • node.js的hello world!

    一、创建node项目 创建一个新的node项目很简单,创建一个文件夹,并cd进去,运行npm init即可。 mk...

  • nodejs 教程一(helloworld)

    Express 基于Node.js平台,快速、开放、极简的web开发框架 首先安装 Express 创建web项目...

  • Vue+Express+MongoDB 项目搭建

    一、 Express 项目搭建 安装 Node.js请先安装Node.js 项目搭建创建文件夹请先找一个地方,创建...

网友评论

      本文标题:基于node创建一个Nest.js项目

      本文链接:https://www.haomeiwen.com/subject/oikmyrtx.html