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的了解也很浅显,还需要继续学习,希望可以能和各位大佬交流一下,无论是代码还是日常,希望能够大家都能开心交流,最后希望各位码运昌隆,前程似锦!

相关推荐
黄同学real19 分钟前
前端安全中的XSS(跨站脚本攻击)
前端·安全·xss
楠奕20 分钟前
Neo4j多关系或多路径
前端·javascript·neo4j
小彭努力中3 小时前
8.Three.js中的 StereoCamera 立体相机详解+示例代码
开发语言·前端·javascript·vue.js·深度学习·数码相机·ecmascript
牧天白衣.6 小时前
html中margin的用法
前端·html
NoneCoder6 小时前
HTML与安全性:XSS、防御与最佳实践
前端·html·xss
沃野_juededa6 小时前
关于uniapp 中uview input组件设置为readonly 或者disabled input区域不可点击问题
java·前端·uni-app
哎哟喂_!6 小时前
UniApp 实现分享功能
前端·javascript·vue.js·uni-app
k1955142396 小时前
uniapp常用
前端·javascript·uni-app
wuhen_n9 小时前
CSS元素动画篇:基于页面位置的变换动画
前端·css·html·css3·html5
sql123456789119 小时前
前端——CSS1
前端