1024' > /www/server/panel/data/port.pl && /etc/init.d/bt restart // 查看可用命令 bt // 宝塔启动MongoDB失败问题 连接上服务器...start mongodb安装好后,如需要外网访问连接 配置文件 127.0.0.1修改为0.0.0.0 任何ip访问 net: port: 27017 bindIp: 0.0.0.0 部署nestjs.../dist/ //2、创建 在宝塔文件"/www/wwwroot/"下创建一个文件,将打包的服务器代码放进去 //3、打开pm2管理器,添加你的项目 如果管理器启动项目失败,请使用以下手动启动 $
在nestjs中使用环境变量, 推荐使用官方提供的@nestjs/config,开箱即用: @nestjs/config依赖于dotenv,可以通过key=value形式配置环境变量,项目会默认加载根目录下的...首先安装对应npm包 配置环境变量文件 定义读取环境变量的函数 配置@nestjs/config的方法 首先安装@nestjs/config 配置环境变量文件,配置两个文件,一个用于开发环境,一个用于生产环境...环境变量文件'} 然后配置@nestjs/config的方法 import { TypeOrmModule } from '@nestjs/typeorm'; import { ConfigService...密码 database: configService.get('DB_DATABASE', 'blog'), //数据库名 timezone: '+08:00', //服务器上配置的时区...直接调用configService的get方法,get方法第一个参数是环境变量属性,第二个参数为默认值。 以上便是在nestjs中使用dotenv的方法,希望对你有所帮助。
在NestJS中,拦截器是一种强大的工具,可以用来在请求处理的不同阶段执行一些操作。拦截器可以用于日志记录、验证、转换请求和响应等任务。今天就看看如何在NestJS中使用拦截器。 什么是拦截器?...要使用拦截器,需要在模块的providers数组中注册它,并在需要使用它的路由处理器或控制器上添加@UseInterceptors装饰器。...也可以在特定的路由处理器或控制器上使用@UseInterceptors装饰器来应用拦截器,比如: import { Controller, Get, UseInterceptors } from '@nestjs...这意味着LoggingInterceptor将只应用于CatsController中的路由处理器。 总结 拦截器是NestJS中一个非常强大的工具,可以用于在请求处理的不同阶段执行一些操作。...通过创建一个实现了NestInterceptor接口的类,并在需要使用它的路由处理器或控制器上添加@UseInterceptors装饰器,可以轻松地使用拦截器。
在书写nestjs项目中我们很多情况下希望自己的中间件能够全局使用,比如控制传输加密,以及控制传入信息,来完成全局异常捕获等功能。 于是我们查阅官方文档: ?...全局use.png 但是我们在使用传输过程中发现这样一个错误: ? 报错.png 这个问题纠结我将近一天的时间,“为什么我按照官方文档进行书写代码会报错呢?”...经过几个小时的折腾均没有结果,于是乎我找到nestjs底层express官方文档: ? express文档.png 不难发现,官方文档中use 直接注入的是一个方法。...即:function(req,res,next) 那么,在nestjs中的中间件里面是有一个use方法的,正好是这个function,于是我进行了代码上的修改: ?...修改过后的代码.png 直接使用中间件的use方法,看看使用效果,是否打印了req: ? 最终打印了req.png 终于完成了中间件的全局使用!
tcp服务官方文档 swoole tcp tcp server <?...reactorId, $data) { echo "接收到了客户端id: {$fd} 发送的数据:{$data}"; $sendData = "服务端将客户端发送的数据原样返回...Create swoole_server host=0.0.0.0, port=9501, mode=3, type=1 使用telnet连接 ☁ client [master] ⚡ telnet...Escape character is '^]'. hello swoole 服务端将客户端发送的数据原样返回:hello swoole 自定义 tcp client tcp_client.php tcp 客户端测试 服务端将客户端发送的数据原样返回:swoole tcp 客户端测试
在Nestjs使用TypeORM还是有一些注意点。 entities路径配置注意点 在nestjs中使用TypeORM,需要配置数据库连接(以MySQL为例)。...{ts,js}"], "synchronize": true } entities字段的作用是根据提供的路径字符串,在运行的时候查找对应路径下的entity文件。...首先,我建议最好直接在使用 TypeORM.forRoot 来引入配置,就像下面一样: // app.module.ts const entitiesPaths = [join(__dirname, '...之所以使用了上一层(..)...Entity列配置注意点 这个地方比较细节,笔者编写代码的时候,按照曾经Java的MyBatis-Plus注解使用,给字段添加列定义的时候。
从引用官方介绍开始: Nest(NestJS)是一个用于构建高效、可扩展的Node.js服务器端应用程序的框架。...,客户端需要考虑同步更新; 302:资源被临时重定向到新的资源,如:服务端升级时会启用临时资源; 学习提供者的使用 图片来自:docs.nestjs.com/providers 在 Nestjs 中将提供服务的类及一些工厂类...学习异常过滤器的使用 图片来自:docs.nestjs.com/exception-f… 异常层由开箱即用的全局异常过滤器还行,负责处理应用程序中所有未处理的异常。...@nestjs/cli创建项目及模块; 控制器的使用:处理每次客户端的请求。...; 管道的使用:对客户端的数据进行转换和验证; 守卫的使用:根据特定的权限角色决定是否进行处理; 拦截器的使用:对处理函数进行切面上的扩展;
本文介绍今年上半年使用的的一些技术,做一些个人的学习记录,温故而知新。主要包含了Nestjs、TypeGraphQL、TypeORM相关的知识。本文示例代码以提交到github,可以在这里查看。...如果你使用过最新的AngularJs的话,那么你对可能会很容易上手,它最主要的特点就是,Module·Service·Controller·Provider,以及大量的使用装饰器。...而TypeORM则是使用TypeScript编写的JavaScript版本的ORM库。...提供了CLI,可以直接使用他们的CLI工具创建项目。...@nestjs/graphql,这里我们直接使用@nestjs/graphql。
理解TCP协议及其在服务器开发中的应用,是每一位网络编程初学者的必经之路。本系列文章旨在带领大家逐步深入TCP服务器的开发世界,从最基础的一对一连接通信开始,逐步探索更复杂、更高效的服务器模型。...从零开始,手把手地编写第一个TCP服务器程序,亲身体验“开局一块砖,大厦全靠垒”的成就感。在本文中,聚焦于TCP服务器的编写第一个TCP服务器程序,亲身体验“开局一块砖,大厦全靠垒”的成就感。...在本文中,聚焦于TCP服务器的起点——实现最简单的一对一连接通信。...编写代码实现服务器端接收客户端连接、发送和接收数据的功能。通过一个简单的客户端程序,验证服务器的一对一通信能力。这将是探索TCP服务器演变之路的第一步。...通过这个简单的例子,建立对TCP服务器工作原理的初步认知,为后续学习更高级的服务器模型(如多进程、多线程、IO多路复用等)打下坚实的基础。
GraphQL介绍&使用nestjs构建GraphQL查询服务(文章底部附demo地址) GraphQL一种用为你 API 而生的查询语言。...查询示例 使用几个简单的例子看下GraphQL的查询是什么样子的。...GraphQL服务器,GraphQL服务器会自动解析该字符串内容。...使用nestjs构建GraphQL Server服务 nestjs,官网地址:https://docs.nestjs.com,是一个使用typescript构建nodejs后端应用的框架,类似java中的...使用nestjs搭配GraphQL、typeorm、mysql实现了一个简单的GraphQL查询服务,查询支持单个查询、列表查询、关联查询,变更支持修改、删除操作,具体demo地址: https://github.com
生成并编辑module生成modulenest g mo redis编辑模块// redis.module.tsimport { Module } from '@nestjs/common';// import...async del(key: string): Promise { return this.client.del(key); }}note: 记得删除app.mudule.ts 中的引用...import { Module } from '@nestjs/common';import { AppController } from '..../app.service';import { MongooseModule } from '@nestjs/mongoose';import { ConfigModule } from '@nestjs...调用服务1.使用的模块导入RedisService和模块RedisModule...import { RedisService } from 'src/redis/redis.service';import
前言: 前文我们介绍了UDP的基本使用,本文我们介绍TCP的基本使用,不过TCP的使用我们这里先做一个预热,即只是使用TCP的API简单实现一个回显服务器就可以了。...有了这个套接字,我们才能和客户端进行通信,那么服务器下一步就是通过sockfd处理和客人的请求,那么因为是回显功能,在UDP的时候,使用的是sendto和recvfrom,在TCP这里就比较特殊了,因为...TCP是面向连接的,那么双方经过了三次握手,获取到了对应的sockfd,不要忘了sockfd本质上是文件描述符,所以有了文件描述符,双方是可以直接使用read write进行文件读写的。...所以当我们创建好了server的sockaddr_in 并且相关的字段也填充好了,然后就是TCP专有的操作了,客户端需要使用connect进行连接,使用connect发起三次握手,当然具体操作我们后面介绍...以上就是多线程版本,其实我们能发现不管是什么版本,只是为了改动服务函数的调用而已。 TCP的第一个基本使用就到此结束了~~
NestJS 最早在 2017.1 月立项,2017.5 发布第一个正式版本,它是一个基于 Express,使用 TypeScript 开发的后端框架。...设计之初,主要用来解决开发 Node.js 应用时的架构问题,灵感来源于 Angular。在本文中,我将粗略介绍 NestJS 中的一些亮点。 组件容器 ?...NestJS 采用组件容器的方式,每个组件与其他组件解耦,当一个组件依赖于另一组件时,需要指定节点的依赖关系才能使用: import { Module } from '@nestjs/common';...细粒化的 Middleware 在使用 Express 时,我们会使用各种各样的中间件,譬如日志服务、超时拦截,权限验证等。...NestJS 对 Apollo server 进行了一层包装,使得能在 NestJS 中更方便使用。
你可以使用node版本管理控制器n来管理你的node版本,你可以使用npm install -g n来安装它。 安装完成后,你只需使用n 版本号即可安装并切换到对应版本的node了。...有关n的更多使用方法请移步:n-github 环境搭建 在nest官网中,它提供了三种搭建方式: 使用CLI安装 使用Git安装 手动创建 这三种安装方式都比较简单,感兴趣的开发者可自行查阅文档来了解学习..."@nestjs/core": "^8.1.1", "@nestjs/platform-express": "^8.1.1", "class-transformer": "^0.5.1"...实现代码 查阅文档后,我们知道了需要使用@Injectable()来装饰这个类,代码如下所示: import { Injectable } from "@nestjs/common"; @Injectable...此处我们使用全局作用域的管道,修改main.ts文件,代码如下所示: import { NestFactory } from "@nestjs/core"; import { AppModule } from
NestJS中Guard是一种用于保护路由的机制。它可以在路由处理之前执行一些逻辑,例如验证用户身份、检查权限等。 什么是Guard? Guard是一个实现了CanActivate接口的类。...如何使用Guard? 要使用Guard,需要在模块的providers数组中注册它,并在需要使用它的路由处理器或控制器上添加@UseGuards装饰器。...import { Module } from '@nestjs/common'; import { APP_GUARD } from '@nestjs/core'; import { AuthGuard...另外也可以在特定的路由处理器或控制器上使用@UseGuards装饰器来应用Guard。...通过创建一个实现了CanActivate接口的类,并在需要使用它的路由处理器或控制器上添加@UseGuards装饰器就可以轻松地使用Guard。
创建一个控制器(Controller),处理微信服务器发送过来的GET和POST请求。 验证签名,并返回echostr参数(GET请求)。...使用NestJS框架开发微信自动回复消息功能有以下好处: NestJS框架提供了清晰、灵活、高效的编程模式,让代码更容易阅读、测试和维护。...下面是具体实现过程: 实现xml 解析的中间件,其功能是收到微信服务器的 xml 信息 import { Injectable, NestMiddleware } from '@nestjs/common...这个方法是向微信服务器发送文本消息,并返回一个回复的 xml 格式的数据。...res.end(replyXml) } } } 总之,在最新版本下使用NestJS框架实现微信自动回复消息功能是一种很好地选择。
带新就如同在与另一个过去的自己对视,去挖掘彼此的闪光点是个挺不错的好习惯。前言最近想把之前的微信表情,转换成图片保存下来发送到另一个app当作表情包使用,但是安卓微信没办法直接将表情当做图片保存。...创建 NestJS 项目:通过 nest init 命令初始化一个 NestJS 项目(假设你已经安装了 NestJS 的脚手架工具),或者使用已有的 NestJS 项目进行开发。...二、安装依赖在项目目录下安装 express 和 xml2js 等相关依赖,因为微信公众号服务器验证及消息交互涉及到处理 XML 格式的数据以及基于 Express 风格的中间件机制(NestJS 可以很好地兼容...在 “服务器配置” 板块中,填写服务器地址(例如 https://nideyumin.com/wechat,要与上述在 NestJS 应用中配置中间件应用的路径相对应)、Token(和代码中设置的一致)...这样就完成了 NestJS 与微信公众号的服务器验证对接,后续可以继续开发处理微信公众号消息推送、自定义菜单等更多功能,都是基于这个验证通过的基础上进行拓展的。
一、前言本系列文章旨在带领大家逐步深入TCP服务器的开发世界,从最基础的一对一连接通信开始,逐步探索更复杂、更高效的服务器模型。...从零开始,手把手地编写第一个TCP服务器程序,亲身体验“开局一块砖,大厦全靠垒”的成就感。在本文中,聚焦于TCP服务器的编写第一个TCP服务器程序,亲身体验“开局一块砖,大厦全靠垒”的成就感。...在本文中,聚焦于TCP服务器的起点——实现最简单的一对一连接通信。...编写代码实现服务器端接收客户端连接、发送和接收数据的功能。通过一个简单的客户端程序,验证服务器的一对一通信能力。这将是探索TCP服务器演变之路的第一步。...通过这个简单的例子,建立对TCP服务器工作原理的初步认知,为后续学习更高级的服务器模型(如多进程、多线程、IO多路复用等)打下坚实的基础。
主线程创建监听套接字,创建额外工作线程,关联IOCP,负责等待和接受到来的连接。...调用GetQueuedCompletionStatus函数,函数返回: 1 调用失败 2 套接字被对方关闭 3 请求成功完成 程序首先定义per-handle per-IO的操作数据的结构类型 #define...define OP_WRITE 2 #define OP_ACCEPT 3 }PER_IO_DATA,*PPER_IO_DATA; 主要过程: 1 主线程创建完成端口对象,创建工作线程处理完成端口对象中的事件...2 创建监听套接字,开始监听服务器端口 3 进入无限循环,处理到来的请求 1)调用accept函数等待接受未决的连接请求 2)创建一个per-handle数据 3)投递一个接收请求 实现代码...:bind(sListen,(sockaddr*)&si,sizeof(si)); ::listen(sListen,5); while(TRUE){ //等待接收未决的请求
获得此TCP连接的输入流 getOutPutStream 获得此TCP连接的输出流 ServerSocket public class ServerSocket extends...Object 功能: TCP服务端套接字 构造方法: ServerSocket(int port) 创建绑定到特定端口的服务器套接字。...常用方法: accept 获得TCP连接的客户端的socket isClosed 获得ServerSocket的关闭状态 TCP服务器端 TcpServer.java 服务器端采用多线程的方式...连接服务,绑定端口 ServerSocket tcpServer = new ServerSocket(9090); //接受连接,传图片给连接的客户端,每个TCP连接都是一个...服务 // 连接本机的TCP服务器 Socket socket = new Socket(InetAddress.getLocalHost(), 9090);