前言前面文章中通过客户端工具(MongoDB Shell、Robo 3T)连接 MongoDB 服务时,只要有 IP 地址和端口号,就能连接到数据库,之后就能操作数据库。这是因为默认安装的 MongoDB 没有启用身份验证,也没有设置初始用户名和密码。然而这会导致很多数据安全问题。MongoDB 提供了多种方式来提高数据库的安全性,例如身份验证、访问控制、加密等。本文主要介绍 MongoDB 提供
配置 TypeORM 连接到数据库时,有一个 synchronize 选项,意思是“同步”,也就是同步 TypeORM 实体和数据表,再详细讲就是根据实体自动创建和修改数据表结构,使其与 TypeORM 定义的实体类相匹配。以 Nest 中的使用为例:import { Module } from '@nestjs/common'; import { TypeOrmModule } from '@n
HTTPS是一种基于SSL/TLS协议的加密传输协议,它采用了对称加密和非对称加密技术来保证通信安全。在HTTPS通信中,对称加密和非对称加密各有不同的作用。对称加密对称加密是指加密和解密所使用的密钥是相同的加密方式。在对称加密算法中,只有持有密钥的人才能够解密被加密的信息。对称加密的优点是加密解密速度快,适用于大量数据的加密传输。但是,对称加密的缺点是密钥的传输存在安全隐患,如果密钥被泄漏,那么
从一个现象入手Axios 和 Lodash 是前端开发中常用的工具。在一个 TS 项目中导入并使用 axios 时,既不会报错,还会有语法提示,感觉很不错。但是导入 lodash 时,就会得到一个红线的波浪线提示:无法找到模块”lodash“的声明文件。当然,编辑器也给出了解决方案:尝试使用 npm i --save-dev @types/lodash (如果存在),或者添加一个包含 decla
模块化对编程语言的重要不言而喻。但是早期的 TypeScript 并没有模块化规范。为了实现代码的封装,像 Java,C#等语言一样,TypeScript 采用了命名空间。命名空间声明命名空间使用 namespace 关键字表示,然后在后面的大括号中去定义各种值包括变量,函数,类,接口等,比如:namespace Util { const _private = '私有属性' expo
JS 的数据类型检测是一道经典的八股文面试题。相信大家都能条件反射的回答出 4 种方法:typeof、constructor、instanceof 和 Object.prototype.toString,并且对它们各自的优缺点也是张口就来。本文对这些方法做了简单归纳,同时又补充了其他 5 种和数据类型检测有关的方法,供诸君食用。typeof:检测基础数据类型和函数很好用typeof 应该是我学习到
变量声明Go 中使用 var 或者 const 关键字声明变量:var <变量名> [变量类型]变量赋值的格式是:<变量名> = <值, 表达式, 函数等>声明和赋值通常会合起来写:var <变量名> [变量类型] = <值, 表达式, 函数等>比如声明一个 string 类型的 name 变量:var name string = "go
前言虽然 JS/TS 支持面向对象编程,但大部分时候还是在写函数。函数是一等公民。本文介绍下如何在 TypeScript 中使用函数,包括:函数类型声明函数参数类型:可选参数、默认参数、剩余参数函数返回值类型this 类型函数重载函数类型面试中经常会被问到,JS 中有哪几种数据类型。其中就会有函数类型。JS 中的函数类型很模糊,准确来说,仅有类型的概念,却无类型的实质。好在有了 TS 强类型的加持
今天学习的内容是 Typescript 几个容易混淆的类型,分别是 any 类型和 unknow 类型,以及 void、undefined 和 never 类型。any 和 unknownany 类型any 就是任意类型。写代码时如果不确定属于什么类型,就可以将其定义为 any 类型。any 类型属于动态类型,它支持和兼容所有的类型。let anyValue:any; anyValue = 10
Vi 和 VimVi 是 Linux 操作系统默认的文本编辑器。Vim 是 Vi 的加强版。不仅可以做简单的文字编辑,它也有颜色高亮,语法提示等特性,可以用作编程。现在大部分的 Linux 发行版都同时包含 Vi 和 Vim。在 Linux 操作系统中,Vim 是必须掌握的一个工具:作为命令行模式下的文本编辑器非常好用大部分 Linux 软件都支持 Vim 的接口,使用 Vim 编辑配置时会有良好
SSH 协议实现免密登录前言拿到一台新的云服务器,肯定会特别想把玩它。想把玩它,那肯定得先登录它,进入到它的内部,一睹它的风采。现在的云服务器厂商都提供了在线登录系统的功能:该说不说,在线终端这一块来说,阿里云做的是真的不赖,有多种模式,甚至不用登录,可以直接发送命令到服务器去执行:这个终端的颜值不错,使用体验也不错,非常流畅:但是通常情况下,我们都是在本地通过一个支持 SSH 协议的终端工具,远
日志日志用来记录程序的运行信息。开发服务端程序,必须集成日志管理的功能,一旦系统出现故障可以及时排查问题所在。日志一般分为:访问日志:记录系统的访问记录。运行日志:输出系统运行时的一些信息错误日志:记录系统出错的状态一般我们都是通过 nginx 做负载均衡,它具备了记录访问日志的功能。所以访问日志交给 Nginx 去做就好。在后端程序开发中,我们只需要关注运行日志和错误日志。Koa-loggerK
前言在 Linux 系统上安装软件有两种常用的方式。一种是通过包管理工具,直接安装;另一种是先下载源码,然后再手动编译,再安装。本文以 Git 为例,演示这两种安装软件的方式。使用 yum 安装Yum 是 CentOS 的包管理工具。使用前先更新下 Yum 源:yum update使用包管理器安装软件非常简单,直接一个命令就能进行安装:yum install git安装完成后看下版本信息:$ gi
前言本文将从零至一,介绍如何在云服务器上通过 Docker 容器运行一个简单的Node应用。本文假设读者已经掌握基本的Linux,Docker,Node,Express 知识。基本步骤本地写好nodejs应用,放到github。云服务器安装docker,配置国内镜像加速。拉取一个node镜像。从github拉取项目代码。编写Dockerfile文件,构建镜像。根据镜像运行一个容器。本地进行访问。具
前言上文介绍了如何理解依赖注入和控制反转,简单来说,控制反转是一种设计模式,可以将类与类的关系解耦,将人工维护转移给一个容器维护。要实现控制反转,依赖注入是一个常用方案,将依赖注册到 DI 容器中,哪里用到,就让容器将实例注入到哪里。Nest 中的依赖注入,主要就是围绕提供者(Provider)展开。所谓的依赖,指的就是提供者类。本文通过一个简单示例,来演示 Nest 中的依赖注入是如何工作的(不
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号