- Java锁的逻辑(结合对象头和ObjectMonitor)
- 还在用饼状图?来瞧瞧这些炫酷的百分比可视化新图形(附代码实现)⛵
- 自动注册实体类到EntityFrameworkCore上下文,并适配ABP及ABPVNext
- 基于Sklearn机器学习代码实战
Nest 是一个渐进的 Node.js 框架,它可以在 TypeScript 和 JavaScript (ES6、ES7、ES8)之上构建高效、可伸缩的企业级服务器端应用程序.
Nest 基于 TypeScript 编写并且结合了 OOP(面向对象编程),FP(函数式编程)和 FRP (函数式响应编程)的相关理念。在设计上的很多灵感来自于 Angular,Angular 的很多模式又来自于 Java 中的 Spring 框架,依赖注入、面向切面编程等,所以我们也可以认为: Nest 是 Node.js 版的 Spring 框架 。
Nest 框架底层 HTTP 平台默认是基于 Express 实现的,所以无需担心第三方库的缺失.
NestJs 的核心思想:就是提供了一个层与层直接的耦合度极小,抽象化极高的一个架构体系.
与其它框架一样,NestJS也有自己的脚手架,它可帮助我们快速初始化Nest项目以及开发和维护 Nest 应用程序.
绝大多数人可能会选择全局安装,因为方便,但需要注意的是,全局安装 任何 npm 软件包都会将确保它们运行正确版本的责任留给我们开发者自身。这还意味着,如果你有不同的项目,每个项目都将运行 相同 版本的 CLI.
npm install -g @nestjs/cli
⚠️这里需要注意Node版本,可能会遇到脚手架安装成功了但初始化项目时报错,这里建议使用高版本node,我这里用是node版本是 16.19.0 。
当然你也可以不选择全局安装, Nest 提供了 @nestjs/cli 包同样可以使用 nest 命令 。
npx @nestjs/cli@latest
安装完脚手架之后我们可以通过 nest --help 看看它都有哪些命令:
该命令是用来初始化一个 Nest 项目的 。
nest new project-name
该命令表示初始化一个名为 project-name 的 Nest 项目,并且会帮你安装好所有必要的依赖,简直就是一步到位,非常棒~ 。
上图中我们可以看到 nest|n , n 代表 nest 的别名,所以为了方便,你也可以这样使用:
nest n project-name
该命令可以为我们生成各种代码,其中包括:控制器Controller、服务service、模块module等.
# 生成控制器
nest generate controller controller-name
# 生成服务
nest generate service service-name
# 生成模块
nest generate module module-name
当你觉得一个一个生成很麻烦时,可以使用下面这个命令 。
nest g resource filename
当你执行这个命令时,它会让你选择生成那种类型的代码:
这里我们直接选择 REST API ,它会再问你是否需要生成CURD代码 。
我们选择是就好了,这个它就为我们生成了一个完整的CURD代码.
我们会发现生成的文件中可能会有一些测试文件,当我们不需要这些文件时,可以直接删除掉,或者在生成时加上 --no-spec 表示不生成测试文件 。
nest g resource filename --no-spec
当然它还可以生成更多类型的代码,可以通过以下命令查看:
nest g --help
该命令用于启动开发服务,支持 watch 和调试 。
# 启动
nest start
# 启动并监听文件变动
nest start --watch
#启动并调试
nest start --debug --watch
这些命令可以在 package.json 文件中找到 。
所以我们本地开发一般使用 npm run start:dev 启动项目 。
该命令用于项目打包 。
nest build
它有两种编译方式可选: --wepback 和 --tsc ,默认是 tsc 编译,也可以切换成 webpack.
区别在于 tsc 模式并不会将 node_modules 模块打包进去,而 webpack 模式则会将node模块打包成单文件 。
Nest 脚手架与其它脚手架不同的是,它生成的项目下会有一个脚手架配置文件 nest-cli.json ,上面我们用的命令的很多选项都可以在这个文件中直接配置.
该文件的顶级属性如下:
"collection"
:指向用于生成组件的原理图集合;(最好不要改) "sourceRoot"
:指向标准模式结构中单个项目的源代码根目录,或monorepo 模式结构中的 默认项目 "compilerOptions"
:编译相关的配置选项 "generateOptions"
:全局生成相关的配置选项 "monorepo"
:(仅限 monorepo)对于 monorepo 模式结构,该值始终为 true
"root"
:(仅限 monorepo)指向 默认项目的项目根目录 这些属性指定要使用的编译器以及影响 任何 编译步骤的各种选项,无论是作为 nest build 或的一部分 nest start ,也不考虑编译器,无论 tsc 是还是 webpack.
名称 | 描述 |
---|---|
webpack |
如果是 true ,使用webpack编译。如果 false 存在或不存在,请使用 tsc . 在 monorepo 模式下,默认为 true (use webpack),在标准模式下,默认为 false (use tsc )。 |
tsConfigPath |
( 仅 monorepo ) 指向包含在不带选项的情况下调用或调用 tsconfig.json 时将使用的设置的文件(例如,当构建或启动默认项目时)。 nest build``nest start``project |
webpackConfigPath |
指向 webpack 选项文件。如果未指定,Nest 会查找文件 webpack.config.js . 请参阅下面的更多细节。 |
deleteOutDir |
如果 true ,则每当调用编译器时,它都会首先删除编译输出目录(如 中配置 tsconfig.json ,默认为 ./dist )。 |
assets |
每当编译步骤开始时,启用自动分发非 TypeScript 资源(在增量编译模式下不会发生 资源 --watch 分发)。详情请参阅下文。 |
watchAssets |
如果 true ,则以监视模式运行,监视 所有 非 TypeScript 资源。 |
manualRestart |
如果,则启用手动重新启动服务器的 true 快捷方式。 rs 默认值为 false 。 |
builder |
指示 CLI 使用什么 builder 来编译项目( tsc 、 swc 或 webpack )。要自定义构建器的行为,您可以传递包含两个属性的对象: type ( tsc 、 swc 或 webpack ) 和 options 。 |
typeCheck |
如果 true ,则启用 SWC 驱动项目的类型检查(当 builder 为时 swc )。默认值为 false 。 |
这些属性指定命令使用的默认生成选项 nest generate .
名称 | 描述 |
---|---|
spec |
如果值为布尔值,则默认情况下 true 启用 spec 生成,值为 则 false 禁用生成。CLI 命令行上传递的标志会覆盖此设置,项目特定的 generateOptions 设置也会覆盖此设置(更多内容见下文)。如果该值是一个对象,则每个键代表一个原理图名称,并且布尔值确定是否为该特定原理图启用/禁用默认规范生成。 |
flat |
如果为 true,则所有生成命令都将生成平面结构 |
本系列文章会持续更新哦,关注前端南玖,敬请期待吧~ 。
最后此篇关于【NestJS系列】从NestCLI开始入门的文章就讲到这里了,如果你想了解更多关于【NestJS系列】从NestCLI开始入门的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
Hive —— 入门 Hive介绍 Apache Hive是一款建立在Hadoop之上的开源数据仓库系统,可以将存储在Hadoop文件中的结构化、半结构化数据文件映射为一张数据库表,基于表提供了一
HBase —— 入门 HBase介绍 HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”
零:前端目前形势 前端的发展史 HTML(5)、CSS(3)、JavaScript(ES5、ES6):编写一个个的页面 -> 给后端(PHP、Python、Go、Java) ->
在本教程中,您将了解在计算机上运行 JavaScript 的不同方法。 JavaScript 是一种流行的编程语言,具有广泛的应用程序。 JavaScript 以前主要用于使网页具有交
我曾经是一个对编程一窍不通的小白,但因为对互联网世界的好奇心和求知欲的驱使,我踏入了编程的殿堂。在学习的过程中,我发现了一门神奇的编程语言——Python。Python有着简洁、易读的语法,让初学者能
嗨,亲爱的读者们! 今天我要给大家分享一些关于Python爬虫的小案例。你是否曾为了获取特定网页上的数据而烦恼过?或者是否好奇如何从网页中提取信息以供自己使用?那么,这篇文章将会给你一些启示和灵感。
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 8 年前。 Improv
我想创建一个像https://apprtc.appspot.com/?r=04188292这样的应用程序。我对 webrtc 了解一点,但无法掌握 google app-engine。如何为 java
我刚刚开始使用 Python 并编写了一个简单的周边程序。但是,每当我在终端中键入 python perimeter.py 时,都会收到以下错误,我不知道如何解决。 >>> python perime
Redis有5个基本数据结构,string、list、hash、set和zset。它们是日常开发中使用频率非常高应用最为广泛的数据结构,把这5个数据结构都吃透了,你就掌握了Redis应用知识的一半了
创建发布web项目 具体步骤: 1.在开发工具中创建一个dynamic web project helloword 2.在webContent中创建index.html文件 3.发布web应用到
如果你在 Ubuntu 上使用终端的时间很长,你可能会希望调整终端的字体和大小以获取一种良好的体验。 更改字体是一种最简单但最直观的 Linux 的终端自定义 的方法。让我
1. 前言 ADODB 是 Active Data Objects Data Base 的简称,它是一种 PHP 存取数据库的函式组件。现在 SFS3 系统 (校园自由软件交流网学务系统) 计划的
我对 neo4j 完全陌生,我很抱歉提出这样一个基本问题。我已经安装了neo4j,我正在使用shell“localhost:7474/webadmin/#/console/” 我正在寻找一个很好的例子
我正在阅读 ios 4 的核心音频,目的是构建一个小测试应用程序。 在这一点上,我对所有 api 的研究感到非常困惑。理想情况下,我想知道如何从两个 mp3 中提取一些样本到数组中。 然后在回调循环中
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是无关紧要的,因
我下载了 GNUStep并安装了它,但是我不确定在哪里可以找到 IDE。有谁知道什么程序可以用作 GNUStep IDE/从哪里获取它们?否则,有没有人知道有关如何创建和编译基本 GNUStep 程序
我正在尝试开始使用 Apache Solr,但有些事情我不清楚。通读tutorial ,我已经设置了一个正在运行的 Solr 实例。我感到困惑的是 Solr 的所有配置(架构等)都是 XML 格式的。
请问有没有关于如何开始使用 BruTile 的文档? 我目前正在使用 SharpMap,我需要预缓存切片以加快进程 最佳答案 我今天正在研究这个:)Mapsui项目site严重依赖 SharpMap
尽我所能,我无法让 CEDET 做任何事情。 Emacs 24.3。我下载了最新的 CEDET 快照。我从他的底部(不是这样)Gentle Introduction 中获取了 Alex Ott 的设置
我是一名优秀的程序员,十分优秀!