【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 字样。

相关推荐
2401_897579651 小时前
ChatGPT接入苹果全家桶:开启智能新时代
前端·chatgpt
Narutolxy1 小时前
从传统桌面应用到现代Web前端开发:技术对比与高效迁移指南20250122
前端
摆烂式编程2 小时前
node.js 07.npm下包慢的问题与nrm的使用
前端·npm·node.js
VillanelleS2 小时前
React进阶之高阶组件HOC、react hooks、自定义hooks
前端·react.js·前端框架
亦黑迷失2 小时前
vue 项目优化之函数式组件
前端·vue.js·性能优化
东锋1.32 小时前
npm命令与yarn命令的区别
前端·npm·node.js
傻小胖2 小时前
React 中hooks之useInsertionEffect用法总结
前端·javascript·react.js
lilu88888883 小时前
小米Vela操作系统开源:AIoT时代的全新引擎
前端·开源
万亿少女的梦1683 小时前
WEB渗透技术研究与安全防御
开发语言·前端·网络·爬虫·安全·网络安全·php
Edward-tan4 小时前
【玩转全栈】----Django制作部门管理页面
前端·后端·python·django·bootstrap