Nest.js系列学习之初识nest项目框架及服务

yizhihongxing

当谈到现代Web应用程序开发时,Nest.js是一个值得注意的框架,它基于Node.js,使用了TypeScript和面向对象的编程模式。本文将向您介绍Nest.js框架及其服务的基础知识。

开始篇

Nest.js的介绍

Nest.js主要用于构建可伸缩、高度可维护的Web应用程序。它封装了很多常用的库和技术,在设计上基于AngularJS的思想,提供了一种高效、有条理、易于维护的方法来构建Node.js应用程序。

安装以及基础框架

在开始使用Nest.js之前,您需要先安装Node.js和npm。然后,可以使用npm安装Nest.js框架:

npm install -g @nestjs/cli

安装成功后,使用以下命令创建一个新的Nest.js应用程序:

nest new myapp

上面的命令创建了一个新的Nest.js应用程序,其中包含一个简单的controller,以及使用了Express的默认浏览器引擎。

创建第一个Controller

接下来,我们创建一个新的controller来练习一下Nest.js的基础知识。

使用以下命令创建一个controller:

nest generate controller users

上述命令将生成一个名为“users”的controller,并在“myapp”目录中的“src”的“controllers”文件夹内生成相关文件。

打开“users.controller.ts”文件,并添加以下代码:

import { Controller, Get } from '@nestjs/common';

@Controller('users')
export class UsersController {
  @Get()
  findAll(): string {
    return 'This will return all users';
  }
}

在上面的代码中,我们创建了一个名为“users”的controller,并且创建了一个使用“@Get()”修饰符的方法,该方法会返回“所有用户”这个字符串。

创建第一个Service

现在,我们将创建一个新的service,以便在controller中使用方法。

使用以下命令创建一个service:

nest generate service users

使用上述命令后,在“myapp”目录中的“src”的“services”文件夹中将生成一个名为“users.service.ts”的文件。

打开“users.service.ts”文件,并添加以下代码:

import { Injectable } from '@nestjs/common';

@Injectable()
export class UsersService {
  private readonly users: string[];

  constructor() {
    this.users = ['John', 'Doe', 'Smith'];
  }

  findAll(): string[] {
    return this.users;
  }
}

在上面的代码中,我们创建了一个名为“users”的service。它包含一个私有的数组“users”,以及一个返回该数组的方法“findAll()”。

Refactoring Controller代码

在接下来的步骤中,我们将在controller中使用我们新创建的service。

打开“users.controller.ts”文件,并更新以下代码:

import { Controller, Get } from '@nestjs/common';
import { UsersService } from './users.service';

@Controller('users')
export class UsersController {
  constructor(private readonly usersService: UsersService) {}

  @Get()
  findAll(): string[] {
    return this.usersService.findAll();
  }
}

在上面的代码中,我们通过导入“UsersService”,然后通过在controller的构造函数中注入它,使其对userService进行实例化。我们现在可以使用“usersService”对象来调用“findAll()”方法,这个方法将返回所有用户。

结束篇

本文向您介绍了Nest.js框架及其服务的基础知识,包括如何安装框架以及如何创建一个controller和service,并将它们连接在一起。在实践中,您可以将您自己的controller和service添加到这个原型示例中。

示例1

接下来,我们将使用如下命令在Nest.js项目中创建一个新的module:

nest generate module cats

上述命令将在“src”文件夹下创建一个名为“cats”的文件夹,并在其中创建一个带有“@Module()”修饰符的“cats.module.ts”文件。

在“cats.module.ts”文件中,您可以使用“@Controller()”标记创建一个controller,可以使用“@Injectable()”注释创建一个service,并使用“@Inject()”注释将一个service注入到另一个service或controller中。

示例2

接下来,我们将使用如下代码在Nest.js项目中创建一个新的Middleware:

import { Injectable, NestMiddleware } from '@nestjs/common';
import { Request, Response } from 'express';
import { NextFunction } from 'express-serve-static-core';

@Injectable()
export class LoggerMiddleware implements NestMiddleware {
  use(req: Request, res: Response, next: NextFunction) {
    console.log('Request...');
    next();
  }
}

上面的代码创建了一个叫做“LoggerMiddleware”的middleware,该middleware记录所有接收到的HTTP请求,并将其输出到控制台中。

在“main.ts”文件中,您可以使用如下代码将这个new middleware应用到您的应用程序中:

import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import { LoggerMiddleware } from './logger.middleware';

async function bootstrap() {
  const app = await NestFactory.create(AppModule);

  app.use(new LoggerMiddleware());

  await app.listen(3000);
}
bootstrap();

在上面的代码中,我们调用了“app.use()”方法,并传入了一个新的实例“LoggerMiddleware”,以将middleware应用到应用程序中。此时访问应用程序时,所有传入的HTTP请求都将记录在控制台中。

希望在本文中能给您带来帮助,让您对Nest.js框架有更深入的了解。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Nest.js系列学习之初识nest项目框架及服务 - Python技术站

(0)
上一篇 2023年6月8日
下一篇 2023年6月8日

相关文章

  • node.js域名解析实现方法详解

    Node.js域名解析实现方法详解 什么是域名解析 域名解析是将域名解析成IP地址的过程,它是Internet世界中最基本的服务之一。在网络互联世界中,我们经常使用域名来访问网站,但是计算机语言只能认识IP地址,因此我们需要用域名解析成IP地址才能访问网站。 Node.js域名解析 在Node.js中,我们可以使用内置的dns模块来实现域名解析功能。该模块提…

    node js 2023年6月8日
    00
  • 解决vue内存溢出报错的问题

    解决 Vue 内存溢出问题需要从以下几个方面入手: 1.检查代码中是否存在内存泄漏问题 Vue 的响应式系统可能会引起内存泄漏,因此要注意在组件销毁的时候解绑响应式属性。 在使用第三方插件的过程中,要注意清除插件注册的事件、定时器等资源。 开发中要注意及时销毁不需要的变量和对象,避免不必要的内存占用。 2.优化渲染和更新过程 合理使用计算属性和缓存数据,减少…

    node js 2023年6月8日
    00
  • React服务端渲染(总结)

    React服务端渲染是指把React组件在服务端渲染成HTML字符串,然后再把这些HTML字符串发送给客户端展示,这种渲染方式能够在很大程度上提升页面的渲染速度和SEO友好性。 下面我们将详细讲解React服务端渲染的完整攻略,它主要包括以下步骤: 步骤一:安装依赖 首先,我们需要安装React和React DOM以及相关的babel插件: npm inst…

    node js 2023年6月8日
    00
  • 抛弃Nginx使用nodejs做反向代理服务器

    要抛弃Nginx使用Node.js做反向代理服务器,可以按照以下攻略进行操作: 1. 安装Node.js 在开始使用Node.js作为反向代理的服务前,你需要确保你的系统已经安装了Node.js。如果未安装,可以在Node.js的官方网站上下载并安装。 2. 编写反向代理服务 在Node.js中编写反向代理服务器,需要使用http-proxy模块。你可以在终…

    node js 2023年6月8日
    00
  • Vue使用Echarts实现数据可视化的方法详解

    下面我将详细讲解“Vue使用Echarts实现数据可视化的方法详解”的攻略,包含以下内容: 概述 本攻略主要介绍如何在Vue项目中使用Echarts进行数据可视化。Echarts是一个非常强大的数据可视化库,提供了各种不同类型的图表(例如折线图、柱状图、饼图、地图等)以及丰富的交互功能。 1. 安装Echarts 首先需要在项目中安装Echarts。可以使用…

    node js 2023年6月8日
    00
  • node-webkit打包成exe文件被360误报木马的解决方法

    下面是“node-webkit打包成exe文件被360误报木马的解决方法”的完整攻略。 问题描述 在使用node-webkit对Web应用进行打包成exe文件后,有时会被安全软件如360误报木马,从而影响用户信任度和使用体验。 解决方法 1. 使用数字签名证书 数字签名证书是一种用于确认软件作者身份、确保数据完整性和不可否认性的加密技术。通过对打包后的exe…

    node js 2023年6月8日
    00
  • 解决npm run serve启动报错npm ERR Missing script:”serve”

    当使用npm run serve启动项目时,有时候会遇到npm ERR Missing script:”serve”的错误。这个问题通常由以下几个原因造成: 没有在package.json文件中定义serve脚本。 serve脚本中的命令错误或无效。 下面是解决这个问题的完整攻略: 步骤1 – 确认package.json文件中定义有serve脚本 打开项目…

    node js 2023年6月8日
    00
  • Node中对非阻塞I/O、事件循环的知识点总结

    Node中对非阻塞I/O、事件循环的知识点总结攻略如下: 非阻塞I/O 在Node中,处理I/O操作是通过回调函数的方式实现的,这种方式是非阻塞的。非阻塞I/O的原理是:在进行I/O操作时,Node不会阻塞它的主线程,而是将I/O请求添加到事件队列中,然后继续执行主线程中的其他代码。当I/O操作完成时,Node将触发事件队列中相应的回调函数。 例如,当我们使…

    node js 2023年6月8日
    00
合作推广
合作推广
分享本页
返回顶部