nestJs(一) 创建node项目

news2025/1/14 1:20:55

开发准备

1、安装 Node 环境. 下载安装后,Node >= 10.13.0 即可, 可通过命令行检查

node -v 

2.安装 NestJS cli

npm i -g @nestjs/cli

 创建 nest-test 项目

// step1
nest new nest-test

// step2 Which package manager would you
选择: npm

 目录结构

src
  |- app.controller.spec.ts // controller 的测试文件
  |- app.controller.ts      // controller,路由和预处理
  |- app.module.ts          // module,为模块注册用
  |- app.service.ts         // service 真正的逻辑
  |- main.ts                // 程序入口

module

module 的作用是在程序运行时给模块处理依赖。好处是所有模块的依赖都可以在 module 中清晰明了的知道引用还是被引用

controller

controller 的作用是处理请求,所有的请求会先到 controller,再经 controller 调用其他模块业务逻辑

service

是真正处理业务逻辑的地方,所有的业务逻辑都会在这里处理。它可经过 module 引用其他模块的service,也可经过 module 暴露出去。

启动项目

// step1: 进入目录
cd nest-test

// step2: 安装依赖或更新依赖
npm install

// step3: 运行程序
npm run start

访问url

// ✅
访问: http://localhost:3000/
// => Hello World!  

生成新模块

NestJS cli 支持用命令行形式来创建,这样就不需要做重复的创建文件的动作了。

nest g controller students
nest g service students
nest g module students

再命令行分别执行以上三条命令,src/ 目录变成了如下样子

src
  |- app.controller.spec.ts
  |- app.controller.ts     
  |- app.module.ts         
  |- app.service.ts        
  |- main.ts               
  |- students/
        |- students.controller.spec.ts
        |- students.controller.ts     
        |- students.module.ts         
        |- students.service.spec.ts
        |- students.service.ts        

编辑如下文件:

// students.service.ts
import { Injectable } from '@nestjs/common';

@Injectable()
export class StudentsService {
    ImStudent() {
        return 'Im student';
    }
}
// students.controller.ts
import { Controller, Get } from '@nestjs/common';
import { StudentsService } from './students.service';

@Controller('students')
export class StudentsController {
    constructor(private readonly studentsService: StudentsService) {}
  
    @Get('who-are-you')
    whoAreYou() {
        return this.studentsService.ImStudent();
    }
}

 重启服务, 加上 dev 就能监听文件修改了。

npm run start:dev

最后访问url

// ✅
http://localhost:3000/students/who-are-you
// => Im student  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1127608.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

QLable 类使用教程

文章目录 1、简介2 、公共类型3、属性4、functions4.1、访问属性相关 function4.2、公共槽4.3、Signal4.4、其他方法 QLabel 内容长度超过控件本身长度时处理1、QLabel 内容长度超过控件本身长度时超出的部分用省略号2、QLabel 内容长度超过控件本身长度时使用定时器滑动显示文…

【T3】畅捷通T3备份账套提示:超时已过期,错误‘53‘文件不存在。

【问题描述】 针对畅捷通T3软件,进行账套备份(账套输出)的时候, 先是提示”超时已过期“; 点击确定后,再次提示:运行时错误53,文件未找到。 最终导致账套备份/输出失败。 【解决…

Pd虚拟机Parallels Desktop 19.1.0

Parallels Desktop是一款功能强大的虚拟机软件,它允许用户在Mac电脑上同时运行Windows、Linux和其他操作系统。Parallels Desktop提供了直观易用的界面,使用户可以轻松创建、配置和管理虚拟机。 该软件具有快速启动和关闭虚拟机的能力,让用户…

HFSS笔记——优化设计optimetrics

HFSS的优化设计可以分成4步走: 使用参数扫描确定合理区间 → 确定优化变量 → 构造目标函数→ 确定优化算法 1、变量分为两种,一种较工程变量,一种叫设计变量。 在一个project下可以同时存在多个design,在project下设置的变量叫…

云计算技术的新发展:公有云、私有云还是混合云的未来?

在当今数字化时代,云计算技术已经成为企业和组织不可或缺的工具。在众多的云计算服务模式中,公有云、私有云和混合云备受关注。这些服务模式各具特点,分别适用于不同的应用场景和需求,为企业的信息化建设带来了无限的可能性。 一…

Ubuntu18.04如何安装搜狗、网易云音乐、百度网盘、金山WPS、谷歌浏览器、微信、Maven、Pycharm、Anaconda、MySQL8.0等软件

目录 1.搜狗输入法 下载 安装 卸载 2.网易云音乐 下载 安装 3.百度网盘 下载 安装 4.金山WPS 下载 安装 5.谷歌浏览器 下载 安装 6.微信 下载安装 7.Maven 下载 安装 配置镜像源 8.Pycharm 下载 安装 9.Anaconda 下载 安装 卸载 10.MySQL8.0 下载…

Linux下的IMX6ULL——开发板基本操作(二)

目录: 前面我们已经配置好了环境,下载好了软件,下面让我们对我们使用的开发板有给简单的了解吧,IMX6ULL Pro开发板基本操作是必不可少的一大环节,下面让我们从它的硬件资源,软件资源等一系列开发板的基础操…

一键闪测仪的基本概述和应用全面解析

闪测仪是一种采用新型图像影像测量技术的精密测量仪器,主要是为满足用户快速测量的需要而开发的。它能一键测量二维平面尺寸,或配备光学非接触式测量头,实现高度尺寸、平面度等参数的精密快速测量。在工业制造领域,它通过对目标物…

进程 概念和理解 - Linux 是怎么做到 管理进程的?-fork 手动创建进程

前言 上一篇博客当中,对 冯诺依曼体系结构 和 操作系统 进行了简要概述,本篇博客将会从上一篇博客的基础之上进行展开,如果你有些不了解的话,建议先看上一篇博客再看本篇博客: 冯诺依曼体结构 - 为什么要有操作系统-…

ResNet论文精读,代码实现与拓展知识

文章目录 ResNet 论文精读代码实现网络可视化代码 拓展知识 ResNets残差的调参残差链接的渊源残差链接有效性的解释ResNet 深度ResNeXt代码实现 能够提点的技巧「Warmup」「Label-smoothing」「Random image cropping and patching」「Knowledge Distiallation」「Cutout」「Ra…

学习如何在linux服务器上修改默认端口22

学习如何在linux服务器上修改默认端口22 修改默认的22端口号重启ssh服务测试连接 修改默认的22端口号 [rootqipa250 ssh]# vim /etc/ssh/sshd_config 知道Port,改为自己想要的端口号 重启ssh服务 [rootqipa250 ssh]# systemctl restart sshd.service测试连接 阿…

Netty使用和常用组件

简述 netty 版本 <dependency><groupId>io.netty</groupId><artifactId>netty-all</artifactId<version>4.1.42.Final </version><scope>compile</scope> </dependency>Netty5 已经停止开发了。 netty 优势 API …

SQL注入专项整理(持续更新中)

深入了解SQL注入 什么是SQL注入&#xff1f; SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严&#xff0c;攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句&#xff0c;在管理员不知情的情况下实现非法操作&#xff0c;以此来实现…

【LeetCode:1155. 掷骰子等于目标和的方法数 | 递归->缓存->dp】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

查网站域名历史,查域名有没有灰记录,查域名有多少外链的好工具

作为一位建站达人&#xff0c;我一直在寻找高效的网络查询和管理工具。桔子是我近期发现的两款非常实用的浏览器和网站排名查询工具。它们不仅可以帮助我更好地了解域名的外链情况&#xff0c;还支持建立米表和进行网站排名查询。下面&#xff0c;我将详细介绍如何使用这款工具…

【clickhouse】一个性能问题,把一个中间件从头到位翻了个遍

现象 团队在前期引入了clickhouse&#xff0c;业务上端口进行审计&#xff0c;每天的数据量很大&#xff0c;测试小伙伴在测试的时候&#xff0c;使用pcap回放&#xff0c;将千兆带宽几乎跑满&#xff0c;出现每天大概一亿的数据量&#xff0c;导致界面实时查询很慢&#xff0…

分享42个ASP.NET源码总有一个是你想要的

分享42个ASP.NET源码总有一个是你想要的 链接&#xff1a;https://pan.baidu.com/s/1pLbe0hci2PX3IjtxGTDhMw?pwd8888 提取码&#xff1a;8888 项目名称 Asp.Net Core Api项目集成Azure AD实现认证授权 ASP.NET Core 帖子项目 asp.net core 微服务项目 ASP.NET Core 项目…

Spring Security认证源码解析(示意图)

建议先看完Spring Security总体架构介绍和Spring Security认证架构介绍&#xff0c;然后从FilterChainProxy的doFilterInternal函数开始&#xff0c;配合文章进行debug以理解Spring Security认证源码的执行流程。 在之前的Spring Security认证架构介绍中&#xff0c;我们已经知…

C算法:不使用第三变量,实现两数交换

写一个函数实现两数交换&#xff0c;要求不使用第三个变量。 输入样例&#xff1a; 14 16 输出样例&#xff1a; 16 14 代码实现&#xff1a; #include<stdio.h>int main() {int a,b;printf("please input two num:\n"); scanf("%d%d",&…

C# 使用waveIn实现声音采集

文章目录 前言一、需要的对象及方法二、整体流程三、关键实现1、使用Thread开启线程2、TaskCompletionSource实现异步3、将指针封装为Stream 四、完整代码1.接口2.具体实现 五、使用示例方式一方式二 总结 前言 之前实现了《C 使用waveIn实现声音采集》&#xff0c;后来C#项目…