javascript/typescript/node
文章平均质量分 73
javascript/typescript/node
过客猫2022
这个作者很懒,什么都没留下…
展开
-
Node.js 20 正式发布,引入权限控制
此次对 Node.js 20 的更新包括对 test_runner 模块的重要更改。此前 test_runner 模块是实验性状态,这次更改标志着它是一个可以用于生产环境的稳定模块。Node.js 20 的权限控制功能让开发者在程序执行期间限制对特定资源的访问,例如文件系统操作、子进程生成和 worker 线程创建。这为加载程序提供了一个单独的范围,并确保加载程序和应用程序代码之间没有交叉污染。通过使用此功能,开发者可以防止他们的应用程序访问或修改敏感数据,或者运行可能有害的代码。转载 2023-04-19 11:01:40 · 184 阅读 · 0 评论 -
javascript支持带样式的excel导出库
之前一直使用node-xlsx这个来生成excel文件。大多数的情况下,这个完全胜任。前端时间,要求输出合并单元格,这个支持,然后要求居中,就嗝屁了~。没有办法,只好去找了。最后找到一个xlsx-js-style,符合要求,与node-xlsx一样,都是基于xlsx的库。但是我的代码都是使用node-xlsx的,批量替换会改很多代码。于是,我fork了node-xlsx,然后用xlsx-js-style替换了xlsx,再把xlsx-js-style全部导出,设置单元的时候,这样就可以用代码提示,不用盳猜了。原创 2023-04-19 10:45:04 · 533 阅读 · 0 评论 -
NodeJS V8引擎的内存和垃圾回收器(GC)
不同的语言 GC 实现都不一样,比如Java和GoJava:了解JVM(对应Node V8)的知道,Java也采用分代策略,它的新生代中还存在一个eden区,新生的对象都在这个区域创建。而V8新生代没有eden区。Go:采用标记清除,三色标记算法不同的语言的 GC 实现不同,但是本质上都是采用不同算法组合实现。在性能上,不同的组合,带来的各方面性能效率不一样,但都是此消彼长,只是偏向不同的应用场景而已。转载 2023-03-29 10:52:56 · 631 阅读 · 0 评论 -
WebStorm 2023.1 最新变化
这个版本中还有一项 Vue 特定的改进值得关注。现在,您将在 Vue 模板中获得自定义组件事件的代码补全。它在 JavaScript 和 TypeScript 中相同。转载 2023-03-29 09:35:03 · 665 阅读 · 0 评论 -
精通TypeScript:掌握20个提高代码质量的最佳实践!
TypeScript是一门使用十分广泛的非常适合开发现代应用的开源语言。得益于它先进的类型系统,开发者可以使用它来编写高鲁棒性,高可维护性和高可扩展性的代码。虽然是这样说,不过如果真的想发挥它真正的威力来编写出高质量的项目代码的话,理解和遵循一些最佳实践是必不可少的。因此在本篇文章中我将会带大家一起深入到TypeScript的世界来学习21个关于它的最佳实践,最后让大家可以精通这门语言。转载 2023-03-28 10:37:39 · 247 阅读 · 0 评论 -
nodejs的后端框架egg,thinkjs,nestjs,nuxtjs,nextjs对比
nodejs的后端框架egg,thinkjs,nestjs,nuxtjs,nextjs对比原创 2023-03-24 09:18:12 · 4280 阅读 · 0 评论 -
nodejs的ORM框架Prisma与typeorm对比
综上所述,Prisma和TypeORM都是使用广泛的ORM工具,各自具有不同的优势和不足。如果您希望使用更成熟的框架来开发您的应用,并希望支持更多的数据库类型和功能,则可以选择TypeORM。更好的性能:Prisma使用批量查询和预加载等技术,可以大大提升数据库访问性能,避免了N+1查询等性能问题。3. 丰富的特性:TypeORM提供了广泛的特性,如实体、仓储、查询构建器等,可以满足各种应用程序的需求。1. 更加成熟:TypeORM在市场上已经存在较长时间,具有更广泛的用户群体和更周全的文档和社区支持。原创 2023-03-23 16:50:39 · 3249 阅读 · 0 评论 -
TypeScript 诞生 10 周年
当时微软意识到 JavaScript 未来将会被应用到无数场景,而且他们公司内部团队在处理复杂的 JavaScript 代码库时面临着巨大的挑战,所以他们觉得有必要创造强大的工具来帮助编写 JavaScript—— 尤其是针对大型 JavaScript 项目。它是 JavaScript 的类型化超集,可被编译成常用的 JavaScript。这些目标指导着 TypeScript 的发展方向:关注类型系统,成为 JavaScript 的类型检查器,只添加类型检查所需的语法,避免添加新的运行时语法和行为。转载 2022-10-10 09:12:38 · 130 阅读 · 0 评论 -
nest笔记十:typeorm使用经验小结
写这小结的时候,typeorm已经更新0.3.9了, 与之前0.2.x相比,变化蛮大的。这里的内容也是针对0.3.7及以上的版本原创 2022-09-24 13:51:35 · 4028 阅读 · 0 评论 -
一个使用typescript实现的excel转json的工具
基于typescript的实现的excel2json工具这个项目的目录:https://github.com/zdhsoft/excel2json_by_ts2010年的时候,我用python写了一个, 用了好些年。2022年用typescript重写了一下,简化很多 https://github.com/zdhsoft/excel2json_by_ts写的很匆忙,代码有点乱,注释比较少。原创 2022-09-09 11:33:21 · 816 阅读 · 0 评论 -
nest笔记九:参数校验使用延伸
默认的呢况下,参数校验只针对DTO中已经存在的参数,进行校验。而未在DTO中定义的属性,则会被忽略,不去校验。如果要校验参数,只能是DTO的属性,我们只要增加校验选项就可以了。原创 2022-08-30 00:08:42 · 784 阅读 · 2 评论 -
基于typeorm的nestjs项目使用@zdhsoft/tmg将数据库生成数据模型已更新到0.1.3版(2022-10-10)
【代码】基于typeorm的nestjs项目使用@zdhsoft/tmg将数据库生成数据模型。原创 2022-08-24 19:28:35 · 955 阅读 · 0 评论 -
# nest笔记八:使用apifox导入swagger
- apifox是一个很不错的类postman工具,除了它国内还有不少类似的工具,我一个偶然的机会,就用它了, 目前使用来看,还不错。- nestjs提供了对swagger的支持,我们只要按它的定义,就可以了- nestjs的官方文档:https://docs.nestjs.com/openapi/introduction...原创 2022-08-13 12:44:36 · 1669 阅读 · 2 评论 -
pm的报警告:“npm WARN config global --global, --local are deprecated
pm的报警告:“npm WARN config global --global, --local are deprecated原创 2022-07-20 13:57:53 · 621 阅读 · 0 评论 -
js笔记十七:typescript项目的jest项目配置全过程
typescript项目的jest项目配置全过程原创 2022-07-18 14:55:02 · 1264 阅读 · 1 评论 -
安装electron失败的解决办法
使用electron,安照官方例子,结果是失败的。原因是下载官网的二进制包失败,结果不能执行。也用了npm的镜像:registry = "https://registry.npmmirror.com/",也不行。后来网上折腾一段时间,看到一个开源项目(基于electron),写到要在npm设置electron的镜像,才可以。使用命令:npm config set ELECTRON_MIRROR http://npm.taobao.org/mirrors/electron/完后,再重新npm install,原创 2022-06-28 11:21:55 · 5209 阅读 · 1 评论 -
NodeJS加密算法
当发送方A向接收方B发送数据时,需要考虑的问题有:数据的安全性。数据的完整性,即数据不被篡改。数据的真实性,即数据确实来自于发送方,传输过程中没有被替换。数据的不可否认性,即验证发送方确实发送了数据。A 使用密钥加密数据A 将密文发送给 BB 收到密文后,使用相同的密钥对其进行解密,取得原始数据优点:速度快缺点:密钥被盗就被破解、密钥管理不方便(每个用户都要对应一个密钥)实现算法有:凯撒密码,AES(Advanced Encryption Standard)、DES(Data Encryption Stan转载 2022-06-17 09:43:41 · 3592 阅读 · 1 评论 -
nodejs打包成桌面程序(exe)的进阶之路
nodejs打包成桌面程序(exe)的进阶之路node js bat 前端 计划任务前言:最近的研究,请大佬们细品第一篇 - 任务计划程序篇说真的研究到将nodejs打包成可执行的exe文件是个意外的方向。刚开始我的需求就是想要在电脑开机时自启动nodejs的项目;因为自己目前是搞前端开发的,而nodejs现在对于前端来说还是很火的,我们也会经常接触到它,比如webpack、Vue、React等都要用到nodejs进行编译,转换成浏览器可识别的文件,在这里nodejs扮演的是转载 2022-04-29 10:27:57 · 18850 阅读 · 2 评论 -
npm 报错疑难问题两则以及解决办法
npm 报错疑难问题两则以及解决办法我这里处理问题的环境是ubuntu server 16.04 lts 其它系统可以依此类推。报错:NPM ERR! code 128npm ERR! code 128npm ERR! command failednpm ERR! command git ls-remote ssh://git@github.com/xxxx/xxxxxx.git这个问题主要是因为github访问受限造成的解决办法就是使用github镜像, 关于镜像参考下面的文章。整原创 2022-04-25 11:15:24 · 647 阅读 · 0 评论 -
Node.js 18 发布,引入全局 Fetch API 和核心测试运行器模块
来源: OSCHINA 编辑:罗奇奇Node.js 18已发布,该版本的亮点包括将 V8 JavaScript 引擎更新到 10.1、默认启用全局 Fetch API 以及核心测试运行器模块。Node.js 18 是未来 6 个月的“当前”版本,然后在 2022 年 10 月升级为 LTS ,升级为 LTS 后将支持到 2025 年 4 月。新的浏览器兼容 API全局 Fetch API(实验性)Node.js 18 默认提供一个实验性的全局 Fetch API,该实现来自 HTTP/...转载 2022-04-21 09:16:38 · 1341 阅读 · 0 评论 -
typescript的tsconfig中esModuleInterop的到底做了什么?
问题引入很多 react 使用者在从 JS 迁移到 TS 时,可能会遇到这样一个问题:JS 引入 react 是这样的:// jsimport React from 'react'而 TS 却是这样的:// tsimport * as React from 'react'如果直接在 TS 里改成 JS 一样的写法,在安装了 @types/react 的情况下,编辑器会抛出一个错误:此模块是使用 "export =" 声明的,在使用 "esModuleInterop" 标志转载 2022-03-28 00:21:40 · 4476 阅读 · 1 评论 -
windows下node开发后端必备工具分享
windows下node开发后端必备工具分享免费工具这里的免费工具都是很良心的,没有捆绑第三方软件等编辑器:vscode下载地址:https://code.visualstudio.com/文件名:VSCodeUserSetup-x64-1.65.2.exe本地数据库环境https://www.xp.cn/集成了nginx,apache,redis,mysql等必要的数据库和web服务器文件名:phpStudy_64.zipgit工具GitDesktop客户端:https:原创 2022-03-24 15:09:43 · 1862 阅读 · 0 评论 -
nest笔记七:参数校验
nest笔记七:参数校验nestjs的参数校验官方文档:https://docs.nestjs.com/techniques/validation。 它主要使用第三方的class-validator来进行参数校验。Validator-Pipe实现网上给了很多例子,基本上可以直接拿来使用了,下面的这个是我做了一下处理的import { Injectable, PipeTransform, ArgumentMetadata, ValidationError, HttpException, HttpS原创 2022-03-18 15:55:04 · 3115 阅读 · 0 评论 -
TypeScript装饰器完全指南
装饰器让TypeScript的世界更好。 我们使用的许多库都基于这一强大特性构建, 例如Angular和Nestjs。 在这篇博客中我将介绍装饰器和它的许多细节。 我希望在读完这篇文章后,你可以理解何时和如何使用这一强的的特性。概览装饰器本质上是一种特殊的函数被应用在于:类 类属性 类方法 类访问器 类方法的参数所以应用装饰器其实很像是组合一系列函数,类似于高阶函数和类。 通过装饰器我们可以轻松实现代理模式来使代码更简洁以及实现其它一些更有趣的能力。装饰器的语法十分简单,只需要在想转载 2022-03-05 23:28:52 · 5705 阅读 · 2 评论 -
nodejs简单通用工具库 xmcommon 0.9.19发布
xmcommon一个js 通用库, 将一些常用的函数之类的,移到这里方便使用准备用typescript重写这个库,并计划正式发布它的1.0版本。第一个改写版0.9提交,一下就准备单元测试与兼容性测试警告:这个版本改动比较大,可能存在重大bug! 请使用0.1.9这个稳定版Warning: This version has changed a lot, and there may be major bugs! Please use the stable version 0.1.9当前的版本,是原创 2022-02-23 16:02:09 · 424 阅读 · 0 评论 -
2022,前端工具链十年盘点
前史:2009 - 20102009 年前,前端的工具链不由 JavaScript 编写,功能也较为简单,如 make、python、C# 等。2009 年起,前端工具链的前置要求被逐个满足。 模块定义:2009 年,CommonJS 模块定义规范被提出[2]; 语言:2009 年,ECMAScript 5 发布[3],JavaScript 标准更明确,功能更多; 执行环境:2009 年,Node.js 发布初始版本[4]; 包管理:2010 年,npm 发布[5];转载 2022-02-23 11:00:49 · 163 阅读 · 0 评论 -
ubuntu一种简单安装node的方法
ubuntu一种简单安装node的方法centos下安装node的方法,参考这个文章:https://zdhsoft.blog.csdn.net/article/details/73436740目录文章目录ubuntu一种简单安装node的方法目录安装过程安装过程本方法适已经在16.04,18.04,20.04等ubuntu linux server成功安装过,其它ubuntu估计也差不多,没有试过# 首先安装npmsudo apt install npm# 然后安装nsudo n原创 2022-02-21 11:16:19 · 3309 阅读 · 1 评论 -
使用nest的感觉
nest给人的感觉就是壳,将express, 数据库,校验,日志,定时任务等开源库之上,再封装了一个层,封装层次还相对较浅。很多功能,还需要手动再配置,离开箱即用还有不少距离。 刚开始用的时候,需要比较强的动手能力,不然你只能做简单的功能。...原创 2022-02-14 11:39:08 · 445 阅读 · 2 评论 -
nest笔记六:统一返回格式
nest笔记六:统一返回格式前言当node做为服务器提示api服务的时候,请求除GET外,请求是JSON格式,返回是JSON格式,希望能够提供统一的返回json格式。但是,nest框架没有为了专门设置,全都交给了开发者。我这里只是针对我这里的系统,提供了一个方案。场景不是所有的场景都是要用统一的返回格式的,如使用EJB的渲染等,就不能用。为了方便,我这里只是将特定URL前缀的,做为统一检查返回。下面是具体实现的代码request.interceptor.ts 全局截器import { In原创 2022-01-16 11:18:21 · 3446 阅读 · 0 评论 -
class-transform for nest
class-transformdemo 我的一些个人理解在ES6和typescript的时代,相比于以往,你会更多的使用类和构造函数生成对象。Class-transformer允许你把字面量对象转换成某些类的实例,反之亦然。同时,它也可以基于某些条件进行对象的序列化和反序列化。这个工具在前端和后端都是非常有用的。Its ES6 and Typescript era. Nowadays you are working with classes and constructor objects mor转载 2022-01-05 11:16:47 · 1488 阅读 · 0 评论 -
TSRPC + Cocos,多人实时对战 So Easy
原文链接:TSRPC + Cocos,多人实时对战 So Easy! | TSRPC - 专为 TypeScript 设计的 RPC 框架内容介绍❓ 帧同步和状态同步可以并用?❓ 200ms 毫秒延迟也能实现单机游戏般的丝滑流畅?❓ 有延迟的情况下怎么实现技能判定?先看 Demo:Cocos Creator | frontend可邀请好友或浏览器多开体验多人对战效果多人实时对战一直是游戏开发领域的一块硬骨头。听起来不简单,做好了更难。 但时代在进步,技术在发展。就像 Cocos Cre转载 2021-12-15 23:28:58 · 4397 阅读 · 0 评论 -
Nodejs Passport 系列之四:Passport 源码剖析之 OAuth2 认证流程
前言本文是笔者所总结的有关Nodejs Passport 系列之一;本文将从源码分析的角度,来深入剖析 passport 的认证流程;本文为作者原创作品,转载请注明出处;综述OAuth2orize包模块扩展使得 Express 成为具备 OAuth 2 标准的 Authroization Server;本博文笔者仅对笔者目前所关注的 Resource Owner Password Credentials 的认证流程进行剖析,其它的方式可以触类旁通;Resource Owner Pas..转载 2021-12-08 20:36:40 · 837 阅读 · 0 评论 -
Nodejs Passport 系列之三:Passport 源码剖析之认证流程
前言本文是笔者所总结的有关Nodejs Passport 系列之一;本文将从源码分析的角度,来深入剖析 passport 的认证流程;备注,此部分流程依赖于Nodejs Passport 系列之二:Passport 源码剖析之类图及初始化流程剖析作为前置条件;本文为作者原创作品,转载请注明出处;Demo此部分将继续使用Nodejs Passport 系列之二:Passport 源码剖析之类图及初始化流程剖析中的 LocalStrategy 的 demo 来深入分析如何使用 passpo...转载 2021-12-08 20:34:47 · 708 阅读 · 0 评论 -
Nodejs Passport 系列之二:Passport 源码剖析之类图及初始化流程剖析
前言本文是笔者所总结的有关Nodejs Passport 系列之一;本文将从源码分析的角度,来深入剖析 passport 的初始化流程;本文为作者原创作品,转载请注明出处;备注,该系列的源码分析是基于 passport 版本 1.15.6demo笔者将使用这个 demo 来对 Local Strategy 的源码进行剖析;构建项目骨架首先构建 express 项目骨架,这部分内容参考Nodejs Express 系列之二:Express 骨架 Skeleton中小节“如何使...转载 2021-12-08 20:16:27 · 552 阅读 · 0 评论 -
Nodejs Passport 系列之一:基础概念
前言本文是笔者所总结的有关Nodejs Passport 系列之一,本篇文章主要是对其基本的构建原理进行梳理;本文为作者原创作品,转载请注明出处;概述Passport 构建得及其的简单,它被设计为 Nodejs 的中间件;具体的使用过程是将 passport 作为中间件嵌入到某 Express 的请求之前或者之后,用来验证用户的身份;而针对不同的验证方式,Passport 通过提供不同的验证策略(Strategies),通过这些不同的 Strategies 来提供不同的验证逻辑和方式,这些.转载 2021-12-08 19:57:41 · 1051 阅读 · 0 评论 -
javascript系列笔记
js笔记一:js中forEach,for in,for of循环的用法js笔记二:node.js的npm使用理解js笔记三:Setjs笔记四:node 6.9.x for gulp完整配置过程js笔记五:数组基础篇js笔记六:数组功能篇js笔记七:数组的解构与变参js笔记八:classjs笔记九:当运行脚本js笔记十:vscode代码提示js笔记十一:js监测变化并动态加载js笔记十二:利用await和async,将回调函数变成同步的处理的办法js笔记十三:nodejs 原生Big.原创 2021-12-06 14:29:52 · 554 阅读 · 0 评论 -
nest记笔五:使用TypeORM连接mysql
nest记笔五:使用TypeORM连接mysql这个比较简单,在之前的例子中,实际上已经连上了数据库了1. 连接配置TypeORM1.1 首先安装依赖包,@nestjs/typeorm, typeorm, mysql2npm install --save @nestjs/typeorm typeorm mysql21.2 在项目根目录下,生成一个ormconfig.json文件[ { "type": "mysql", "host": "127.0.0.1", "原创 2021-12-06 14:25:49 · 2930 阅读 · 0 评论 -
# nest笔记四:文件的上传与下载
nest笔记四:文件的上传与下载nest是基于express之上的,所以,其文件上传和下载的功能,实际上就是express的功能。下载文件下载有两种,一个是sendFile,一个是download。其实download会在浏览器显示另存为…,它主要是在响应头里面加上了Content-Disposition: attachment; filename=“xxxx” 告知浏览器需要下载。我用apifox测试,中文文件名乱码。抽空我再解决这个问题。而sendFile会在浏览器显示文件,它主要是在Con原创 2021-11-30 22:25:22 · 2601 阅读 · 0 评论 -
node执行报:Bus error (core dumped)
用node执行,突然报Bus error (core dumped), 什么操作都没作,只搞了node版本切换。用的是n命令切换的,排查好久,想到可能是C++库的问题。于是清空node_modules, 重新安装包,中间有会重新编译的过程,最后,问题解决。...原创 2021-11-25 12:00:51 · 1433 阅读 · 0 评论 -
node一个很强大的命令行封装库,可以让你轻松写出强大的命令行命令
node.js command-line interfaces made easy转载 2021-11-24 11:46:17 · 495 阅读 · 0 评论