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

NestJS——基于Node.js 服务器端应用程序的开发框架

文章目录

  • 前言
    • 什么是 NestJS?
  • 一、NestJS特性?
  • 二、使用步骤
    • Typescript 知识
    • 后端开发基本知识
    • 新建项目
    • 目录结构


前言

在这里插入图片描述

Nestjs中文文档

什么是 NestJS?

Nest (NestJS) 是一个用于构建高效、可扩展的 Node.js 服务器端应用程序的开发框架。它利用 JavaScript的渐进增强的能力,使用并完全支持 TypeScript (仍然允许开发者使用纯 JavaScript 进行开发),并结合了 OOP(面向对象编程)、FP (函数式编程)和 FRP (函数响应式编程)。在底层,Nest 构建在强大的 HTTP 服务器框架上,例如Express (默认),并且还可以通过配置从而使用 Fastify !

近年来,得益于 Node.js,JavaScript 已成为前端和后端应用的 Web 的 “通用语”。 这催生了 Angular、React和 Vue 等出色的项目,它们提高了开发者的工作效率,并支持创建快速、可测试和可扩展的前端应用。 然而,尽管 Node(和服务器端JavaScript)存在大量一流的库、辅助程序和工具,但它们都没有有效解决 架构 的主要问题。Nest 提供开箱即用的应用架构,允许开发者和团队创建高度可测试、可扩展、松耦合且易于维护的应用。 该架构深受 Angular 的启发。

简单来说 NestJS 就是一个 NodeJS 服务端框架,它完全支持 TypeScript,并且有自己一套架构模式,开发者需要按照 NestJS 要求的架构来组织代码,而这套架构思想接近于传统后端的开发框架,所以作为一个完全的前端开发者理解起来相对来说会有些出入。下面是官网的介绍


一、NestJS特性?

  • 基于 TypeScript 以及 Express/http://Scoket.io 构建
  • 框架结构清晰,便于学习
  • 内含大量后端开发模块,十分全面

二、使用步骤

使用 nestjs 前,需要做一些准备工作,有助于快速上手 nestjs 框架。

Typescript 知识

Nestjs 受欢迎的其中一点就是它使用 typescript 进行开发,作为 2023年最火的前端技术之一,几乎是前端开发者必学的知识。

那么要能够在 nestjs 中畅游,需要哪些 typescript 知识呢?

  • 装饰器(Decorators):nestjs 使用了大量 typescript 的装饰器,不了解装饰器几乎无法使用 nestjs
  • 各种类型和泛型:typescript 核心,用 typescript 必须知道的类型相关知识
  • async 和 await:这个其实不是 typescript 独有的属性,不过 typescript 也实现了。在数据库操作中,会经常用到异步操作,这两个知识也十分重要
  • 类和接口:nestjs 所有模块都以类的形式实现,所以类跟接口也需要掌握## 1.作为一个

后端开发基本知识

由于我们做的是后端开发,作为一名前端开发人员,对于很多后端的技术或者规则并不了解。所以掌握一些后端知识,十分重要。 1. 基本数据库操作:后端开发必然是要操作数据库的,作为新手的话,我们需要掌握一些基本的操作 2. Http 知识:老生常谈的东西,在前端开发的时候可能只需要基本了解,但是后端则需要深入掌握了 3. 安全知识:后端开发对于安全性的要求比前端高很多,毕竟要操作数据,于是对于一些安全性方面的考虑也需要掌握 4. 服务器基础:后端的代码是运行在服务器上的,虽说有运维看着服务器,但是后端开发的时候还是需要考虑到服务器方面的问题,像服务器压力等等

新建项目

Nestjs 有自己的 cli,先用 npm 全局安装,然后通过 new 新建项目

npm i -g @nestjs/cli

然后

nest new project-name

目录结构

在这里插入图片描述

注意:Nest.js 要求 Node.js(>= 10.13.0,v13 除外), 如果你的Node.js 版本不满足要求,可以通过nvm包管理工具安装符合要求的Node.js版本

相关文章:

NestJS——基于Node.js 服务器端应用程序的开发框架

文章目录 前言什么是 NestJS? 一、NestJS特性?二、使用步骤Typescript 知识后端开发基本知识新建项目目录结构 前言 Nestjs中文文档 什么是 NestJS? Nest (NestJS) 是一个用于构建高效、可扩展的 Node.js 服务器端应用程序的开发框架。它利用…...

EXCEL中将UTC时间戳转为日期格式(精确到秒)

UTC时间戳的格式通常是一个整数,表示从1970年1月1日00:00:00 UTC到当前时间的总秒数。它可以以秒或毫秒为单位表示。例如,如果当前时间是2023年3月17日 12:34:56 UTC,则对应的UTC时间戳为1679839496(以秒为单位)或1679…...

2023年【起重机械指挥】考试试卷及起重机械指挥操作证考试

题库来源:安全生产模拟考试一点通公众号小程序 2023年起重机械指挥考试试卷为正在备考起重机械指挥操作证的学员准备的理论考试专题,每个月更新的起重机械指挥操作证考试祝您顺利通过起重机械指挥考试。 1、【多选题】《中华人民共和国特种设备安全法》…...

组件的设计原则

目录 插槽的基本概念 基础用法 具名插槽 使用场景 布局控制 嵌套组件 组件的灵活性 高级用法 作用域插槽 总结 前言 Vue 的 slot 是一项强大的特性,用于组件化开发中。它允许父组件向子组件传递内容,使得组件更加灵活和可复用。通过 slot&…...

安卓编译命令mm和mmm的区别(mm编译当前工作目录,mmm可编译指定目录)

文章目录 1. mm示例 2. mmm示例 注意 在Android操作系统的源代码编译过程中, mm和 mmm是两个用于构建部分代码的常用命令。它们都属于Android build system提供的命令集合,但用途略有不同: 1. mm mm(make module)命…...

计算机毕业设计 基于Springboot的影院购票管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…...

使用.net 构建 Elsa Workflow

对接过蓝凌OA 也基于泛微OA数据库原型重新研发上线过产品,自研的开源的也上线过 每个公司对OA流程引擎介绍 都不一样的, 比如Elsa 这款微软MVP开源组件,基于跨平台开发的技术含量高,专门做OA的同行推过对应文章。 直接看怎么用吧。…...

open clip论文阅读摘要

看下open clip论文 Learning Transferable Visual Models From Natural Language Supervision These results suggest that the aggregate supervision accessible to modern pre-training methods within web-scale collections of text surpasses that of high-quality crowd…...

Vue3像Vue2一样在prototype(原型)上挂载数据

Vue2的写法 import App from ./App import Vue from vue import ./uni.promisify.adaptor Vue.config.productionTip false App.mpType app import config from "./static/js/config/config.js" Vue.prototype.$configconfig; const app new Vue({...App }) app.…...

API接口自动化测试

本节介绍,使用python实现接口自动化实现。 思路:讲接口数据存放在excel文档中,读取excel数据,将每一行数据存放在一个个列表当中。然后获取URL,header,请求体等数据,进行请求发送。 结构如下 excel文档内容如下&#x…...

基于springboot实现驾校管理系统项目【项目源码】

基于springboot实现驾校管理系统演示 JAVA简介 JavaScript是一种网络脚本语言,广泛运用于web应用开发,可以用来添加网页的格式动态效果,该语言不用进行预编译就直接运行,可以直接嵌入HTML语言中,写成js语言&#xff0…...

稀疏数组的保存优化(java版本)

什么是稀疏矩阵? 矩阵中,若数值为 0 的元素数目远远多于非 0 元素的数目,并且非 0 元素分布没有规律时,则称该矩阵为稀疏矩阵;与之相反,若非 0 元素数目占大多数时,则称该矩阵为稠密矩阵。 …...

Git GUI、SSH协议和IDEA中的Git使用详解

目录 前言 一、Git GUI的使用 1. 什么是Git GUI 2. 常见的Git GUI工具 3.使用 4.使用Git GUI工具的优缺点 优点: 缺点: 二、SSH协议 1.什么是SSH协议 2.SSH的主要特点和作用 3.SSH密钥认证的原理和流程 4. SSH协议的使用 三、IEDA使用git …...

Linux下C++调用python脚本实现LDAP协议通过TNLM认证连接到AD服务器

1.前言 首先要实现这个功能,必须先搞懂如何通过C调用python脚本文件最为关键,因为两者的环境不同。本质上是在 c 中启动了一个 python 解释器,由解释器对 python 相关的代码进行执行,执行完毕后释放资源。 2 模块功能 2.1python…...

计算机毕业设计选题推荐-校园交流平台微信小程序/安卓APP-项目实战

✨作者主页:IT研究室✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…...

FlinK之检查点与保存点机制

检查点与保存点 检查点Checkpoint概述保存时机保存与恢复检查点算法 检查点配置启用检查点指定存储位置其它配置通用增量 保存点Savepoint概述使用保存点切换状态后端 SQL客户端中操作提交作业触发恢复 检查点Checkpoint 概述 在 Flink 中,检查点是用于实现状态一致…...

UE5 新特性 Nanite 开启

啥也不说,只能说,真的牛,在自己的项目上,从10几20的帧数,直接彪到了70 适用场景: 大场景,三角面足够多 在Project Setting里面 将这几个勾未true 勾上这个,放入场景即可...

仿写知乎日报第四周

本周主要修改了以往的一些bug,实现了一些遗漏的新功能。 无限右滑 无限右滑我听了学长的思路,首先在scrollView的画布大小设置多一个宽度的画布,然后每当滑到那个画布的时候,就调用一个通知,该通知会触发在首页的vie…...

MySQL join原理及优化

MySQL的JOIN原理是基于索引和算法的。在执行JOIN查询时,MySQL会根据连接字段上的索引来查找匹配的记录。 这种算法在链接查询的时候,驱动表会根据关联字段的索引进行查找,当在索引上找到了符合的值,再回表进行查询,也就…...

js案例:打地鼠游戏(打灰太狼)

效果预览图 游戏规则 当灰太狼出现的时候鼠标左键点击灰太狼加10分,小灰灰出现的时候鼠标左键点小灰灰击减10分,不点击不减分不加分。 整体思路 1.把获取背景图片中每个地洞的位置,把所有位置放到一个数组中。 2.封装随机数函数,随…...

边缘计算语音识别实战:ARM平台深度部署方案与嵌入式AI部署指南

边缘计算语音识别实战:ARM平台深度部署方案与嵌入式AI部署指南 【免费下载链接】sherpa-onnx Speech-to-text, text-to-speech, speaker diarization, speech enhancement, source separation, and VAD using next-gen Kaldi with onnxruntime without Internet con…...

Audio Slicer音频分割工具:用智能静音检测告别手动剪辑烦恼

Audio Slicer音频分割工具:用智能静音检测告别手动剪辑烦恼 【免费下载链接】audio-slicer A simple GUI application that slices audio with silence detection 项目地址: https://gitcode.com/gh_mirrors/aud/audio-slicer 你是否曾为处理长音频文件而烦恼…...

从混乱到有序:用pd.to_numeric()高效清洗数据中的数字陷阱

1. 数据清洗中的数字陷阱:为什么需要pd.to_numeric() 刚入行数据分析时,我接手过一个电商价格分析项目。原始数据是从20个Excel表格合并而来,打开一看差点崩溃——价格字段里混着"199"、"199元"、"199.00"、&…...

大模型训练技术降维打击!YOLO26的MuSGD如何让小模型训练效率翻倍

在大模型狂飙的2026年,很多人都忽略了一个重要的事实:90%以上的工业级AI应用仍然运行在边缘设备上,依赖的是参数量不足100M的小模型。然而,小模型训练一直面临着"收敛慢、不稳定、泛化差"的三角困境——用SGD需要300轮以…...

【Day 10 Java转Python】@property——把方法当属性用,Python的封装艺术

Java老兵写Python时最常问的问题:“私有字段呢?getter和setter呢?没有这些,封装还叫封装吗?” 别急,Python告诉你:封装不是为了写一堆getXxx()/setXxx(),而是为了在需要时优雅地插入…...

Citra模拟器终极解决方案:5步快速修复常见问题指南

Citra模拟器终极解决方案:5步快速修复常见问题指南 【免费下载链接】citra A Nintendo 3DS Emulator 项目地址: https://gitcode.com/GitHub_Trending/ci/citra Citra模拟器作为最优秀的Nintendo 3DS游戏模拟器,让玩家能够在PC上重温经典游戏体验…...

打造沉浸式智能AI问答助手:Vue + UniApp 全端实战(支持 Markdown/公式/多模态交互)芈

OCP原则 ocp指开闭原则,对扩展开放,对修改关闭。是七大原则中最基本的一个原则。 依赖倒置原则(DIP) 什么是依赖倒置原则 核心是面向接口编程、面向抽象编程, 不是面向具体编程。 依赖倒置原则的目的 降低耦合度&#…...

Pixel Dimension Fissioner 环境部署详解:在Ubuntu服务器上从零开始配置

Pixel Dimension Fissioner 环境部署详解:在Ubuntu服务器上从零开始配置 1. 准备工作:系统与硬件要求 在开始部署Pixel Dimension Fissioner之前,我们需要确保服务器满足基本要求。根据官方文档和实际测试经验,以下是推荐配置&a…...

Gitee领跑2025代码托管市场,全链路DevOps能力重塑开发体验

在数字化转型加速推进的2025年,代码托管平台已成为软件开发的基础设施。在这场技术变革中,Gitee凭借全流程研发能力和DevOps深度整合,正引领着行业发展的新方向。作为国内首屈一指的Git代码托管平台,Gitee不仅解决了传统开发中的协…...

Wireshark安装教程(附安装包)

Wireshark 是一款非常流行的、免费开源的网络抓包分析软件,它能捕捉并“翻译”你电脑网络上流过的所有数据包。当网络卡顿、连不上网或者怀疑被黑客攻击时,用它一照,就能看清数据的具体内容、来源和去向,是排查网络故障和网络分析…...