Nest.js初遇

大家好,我是穷小白,人如其名,是一个前端小白,希望能和各位大佬学习,以后主要会发一些前端的文章,写的不好,请各位多多担待,我也是一个动漫爱好者,喜欢花里胡哨,希望可以和大家交流一下,可以是前端相关的或者是动漫番剧或者模型手办什么的!

前言

最近看到各种"开猿节流,降本增笑"的消息,真没想到大厂形式这么严峻,内心有点焦虑,不过也没什么办法,改变不了环境,只能尽力提升自己。

Nest (NestJS) 是一个用于构建高效、可扩展的 Node.js 服务器端应用程序的开发框架。它利用 JavaScript 的渐进增强的能力,使用并完全支持 TypeScript (仍然允许开发者使用纯 JavaScript 进行开发),并结合了 OOP (面向对象编程)、FP (函数式编程)和 FRP (函数响应式编程),这是官网对它的介绍,直白点说就是帮我们前端程序员实现一些后端逻辑。

为什么使用nest.js

nest.js与express、koa一样都是基于node的Web框架,在底层,Nest 构建在强大的 HTTP 服务器框架上,例如 Express (默认),并且还可以通过配置从而使用 Fastify

Nest 在这些常见的 Node.js 框架 (Express/Fastify) 之上提高了一个抽象级别,但仍然向开发者直接暴露了底层框架的 API。这使得开发者可以自由地使用适用于底层平台的无数的第三方模块。

Express的模型是线型模型,而Koa则是洋葱型模型。

Express线性模型

js 复制代码
const express = require("express");
const app = express();
const port = 3000;

app.use((req, res, next) => {
  res.write("hello");
  next();
});
app.use((req, res, next) => {
  res.set("Content-Type", "text/html;charset=utf-8");
  next();
});
app.use((req, res, next) => {
  res.write("world");
  res.end();
});
app.listen(3000);

Koa洋葱模型

js 复制代码
import * as Koa from "koa";
const app = new Koa();
app.use(async (ctx, next) => {
  ctx.body = "hello";
  await next();
  ctx.body += "world";
});
app.use(async (ctx) => {
  ctx.set("Content-Type", "text/html;charset=utf-8");
});
app.listen(3000);

但它们都不推荐做大型、复杂的应用,nest.js正好具备他们所没有的,Nest.js 强调面向服务的架构,使用模块、控制器和服务的概念,使得项目更加组织有序。它支持多种 HTTP 框架,内置了对 GraphQL 和 WebSockets 的支持,nest.js也被开玩笑戏称为小spring。

刚才应该属于官方的说法,我之所以开始学习nest.js还是看了大圣老师的视频,了解了点海外远程的工作,里面有很多机会,最近又看了些裁员的消息,反正多学点终归有好处,海外远程的要求有些都要求vue或者react全栈,明确提了nest。所以想学一下。看了一下官网看了神光的小册,对于我这种小白来说确实有帮助。话不多说,直接开始体验nest.

nest体验

首先需要安装一下Nest CLI

js 复制代码
$ npm i -g @nestjs/cli  
$ nest new hello-nest

这里可以随便选择,我按照官网选择npm

等待运行完成完成即可,然后运行npm run start:dev,访问localhost:3000就可以看到对应的文件

main.js:这是应用程序的入口文件。负责创建Nest应用实例并启动应用,它指定应用程序监听的端口。

app.module.ts:这是应用程序的主模块。在nest.js中应用程序由模块构成,而主模块是应用程序的根模块, 这个文件定义了应用程序的基本配置和引用模块的地方。

app.controller.ts:这是一个控制器类,控制器负责处理来自客户端的 HTTP 请求。在这个文件中,你可以定义一些处理不同路由的控制器方法。

app.service.ts:这是一个服务类,服务负责处理业务逻辑。服务通常由控制器调用,用于封装和处理与数据存储、外部 API 交互等相关的操作。

定义的这些接口可以去postman上查看,当然nest.js也支持导出swagger很方便。

结语

这篇文章主要是想介绍一下nest.js,大部分摘抄自官网,我对nest的了解也很浅显,还需要继续学习,希望可以能和各位大佬交流一下,无论是代码还是日常,希望能够大家都能开心交流,最后希望各位码运昌隆,前程似锦!

相关推荐
powerfulhell14 分钟前
寒假python作业5
java·前端·python
木子啊29 分钟前
前端组件化:模板继承拯救发际线
前端
三十_A31 分钟前
零基础通过 Vue 3 实现前端视频录制 —— 从原理到实战
前端·vue.js·音视频
前端小菜袅31 分钟前
PC端原样显示移动端页面方案
开发语言·前端·javascript·postcss·px-to-viewport·移动端适配pc端
We་ct33 分钟前
LeetCode 228. 汇总区间:解题思路+代码详解
前端·算法·leetcode·typescript
爱问问题的小李1 小时前
ue 动态 Key 导致组件无限重置与 API 重复提交
前端·javascript·vue.js
子兮曰1 小时前
深入Vue 3响应式系统:为什么嵌套对象修改后界面不更新?
前端·javascript·vue.js
CHU7290351 小时前
直播商城APP前端功能全景解析:打造沉浸式互动购物新体验
java·前端·小程序
枫叶丹41 小时前
【Qt开发】Qt界面优化(一)-> Qt样式表(QSS) 背景介绍
开发语言·前端·qt·系统架构
子兮曰7 小时前
OpenClaw入门:从零开始搭建你的私有化AI助手
前端·架构·github