【Nestjs学习日记】初识nestjs

初识nestjs

NestJS是一个基于Node.js的渐进式框架,用于构建高效、可扩展的服务器端应用程序。它结合了现代化的JavaScript(或TypeScript)语言特性和面向对象的编程概念,提供了一种优雅而强大的开发方式。

NestJS采用了模块化的架构,使开发者能够轻松地组织代码和功能。它内置了强大的依赖注入(Dependency Injection)系统,简化了组件之间的耦合关系,提供了更好的可测试性和可维护性。

通过使用NestJS,开发者可以快速构建可伸缩的应用程序,支持各种功能,如路由管理、中间件、异常处理、认证和授权等。它还提供了与各种数据库和其他第三方库的无缝集成,方便开发者使用他们熟悉的工具和技术栈。

在这个【NestJS学习日记】系列中,我们将一起探索NestJS框架的各个方面,从基本概念到高级用法,逐步深入学习和实践。让我们一起开始这个令人兴奋的旅程,掌握NestJS的技能,构建出更加可靠、可扩展的应用程序!

作者:markzzw 时间:2024-1-29

线上代码:CodeSandbox

Github:zhangzewei/nest-learning-tutorial

工具

node环境

需要下载node的环境,请自行搜索 mac,windows,linux 的安装方法。

编写工具

  1. vscode,常规的js编辑器,可以编辑js文件和直接在命令行运行脚本命令
  2. 线上编写器,这里推荐使用CodeSandbox

API访问工具

推荐使用postman,免费并且网上教程很多的一个工具。

安装 nestjs

css 复制代码
npm i -g @nestjs/cli

创建第一个nestjs项目

arduino 复制代码
nest new project-name

目录结构

scss 复制代码
-----src
    |--app.controller.spec.ts // 单元测试文件
    |--app.controller.ts // 模块路由控制文件
    |--app.module.ts // 模块配置文件
    |--app.service.ts // 模块数据处理文件
    |--main.ts // 主文件,启动文件

main.ts

js 复制代码
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';

// 启动函数
async function bootstrap() {
  const app = await NestFactory.create(AppModule); // 创建服务
  await app.listen(3000);
}
bootstrap(); //  运行启动函数

必要的运行命令

package.json

json 复制代码
{
    "scripts": {
        "build": "nest build", // npm run build 构建打包
        "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"", // npm run format 格式化代码
        "start": "nest start", // npm run start 运行 nest 服务 只构建一次
        "start:dev": "nest start --watch", // npm run start 运行 nest 服务 启用监听模式 更改文件重新构建
        "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix", // 检测代码是否合规
        "test": "jest", // 运行单元测试
        "test:watch": "jest --watch", // 运行单元测试 启用监听模式 更改之后重新运行单元测试
        "test:cov": "jest --coverage", // 运行单元测试 并输出单元测试覆盖率报告
    },
}

在学习阶段建议运行 npm run start:dev 这样子方便进行更改后的查看。

运行启动

arduino 复制代码
npm run start:dev

随后打开浏览器查看 localhost:3000,或者在postman中输入 localhost:3000,就能查看到初始样例代码返回的 hello world 字样。

相关推荐
恋恋风尘hhh1 小时前
滑动验证码前端安全研究:以顶象(dingxiang-inc)为例
前端·安全
萑澈8 小时前
Windows 7 运行 Electron 安装包报“不是有效的 Win32 应用程序”怎么办
javascript·windows·electron
W.A委员会8 小时前
JS原型链详解
开发语言·javascript·原型模式
懂懂tty8 小时前
React状态更新流程
前端·react.js
小码哥_常9 小时前
告别繁琐!手把手教你封装超实用Android原生Adapter基类
前端
她说彩礼65万9 小时前
C# 实现简单的日志打印
开发语言·javascript·c#
skywalk81639 小时前
pytest测试的时候这是什么意思?Migrating <class ‘kotti.resources.File‘>
前端·python
一只蝉nahc9 小时前
vue使用iframe内嵌unity模型,并且向模型传递信息,接受信息
前端·vue.js·unity
状元岐10 小时前
C#反射从入门到精通
java·javascript·算法
子兮曰10 小时前
Bun v1.3.12 深度解析:新特性、性能优化与实战指南
前端·typescript·bun