node.js

杀手级的TypeScript功能:const断言[每日前端夜话0x6F]

断了今生、忘了曾经 提交于 2021-02-14 15:32:52
每日前端夜话 0x6F 每日前端夜话,陪你聊前端。 每天晚上18:00准时推送。 正文共:1916 字 预计阅读时间: 6 分钟 翻译:疯狂的技术宅 来源: logrocket 我发现官方的 TypeScript 文档非常有用,但是总觉得有点过于学术化并且枯燥无味。每当我发现一个新功能时,我想要知道这个功能究竟能够解决什么问题而不是长篇大论。 在我看来, const assertions 是 TypeScript 3.4 的杀手级新功能,正如我稍后将要解释的,我们可以用这个新功能省略很多繁琐的类型声明。 const 断言 1 const x = { text: "hello" } as const; 官方文档中给出了这样的解释: TypeScript 3.4 引入了一个名为 const 断言的字面值的新构造。它的语法是一个类型断言,用 const 代替类型名称(例如 123 as const )断言构造新的文字表达式时,我们可以向语言发出以下信号: 该表达式中的字面类型不应被扩展(例如:不能从“hello”转换为字符串) 对象字面量获取只读属性 数组文字成为只读元组 感觉有点枯燥,还有点混乱。让我们来各个击破。 没有类型扩展的字面类型 并不是每个人都知道类型扩展,并且由于某些意外行为而首次发现它时都会觉得意外。 当我们使用关键字 const 声明一个字面量时,类型是等号右边的文字

基于 ThinkJS 的云开发体验

眉间皱痕 提交于 2021-02-14 14:21:09
ThinkJS 是一款企业级的 Node.js Web 开发框架,致力于集成项目最佳实践,规范项目让企业级团队开发变得更加简单,更加高效。 它基于 Koa 2.0 开发,兼容 Koa 的所有 Middleware。 内核小巧,支持 Adapter, Extend 等多种插件扩展方式,框架内的大部分功能也是通过这些方式进行扩展的。 性能优异,支持 TypeScript。 云开发 CloudBase 是云原生一体化应用研发平台为开发者提供高可用、自动弹性扩缩的后端云服务,包含计算、存储、托管等能力,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用、Flutter 客户端等),帮助开发者统一构建和管理后端服务和云资源,避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。 其实在云开发中使用 ThinkJS 和我们日常使用大同小异,除了启动文件需要按照云开发的要求修改一下以外,内部的业务逻辑基本不需要改动。 我们可以使用云开发的 CLI 工具 快速的初始化一个适配云开发的 ThinkJS 项目。 其中 thinkjs-app 是你的项目文件夹名称。 tcb new thinkjs-app thinkjs-starter 初始化完毕进入项目目录后执行 npm install 安装好依赖,就可以通过 npm start 启动开发环境了

使用 vue + thinkjs 开发博客程序记录

一曲冷凌霜 提交于 2021-02-14 14:03:23
<p>一入冬懒癌发作,给自己找点事干。之前博客程序写过几次,php 的写过两次,nodejs 用 ThinkJS 写过,随着 ThinkJS 版本从1.x 升级到 2.x 之前的博客程序也做过升级。但是因为前面考虑搜索引擎抓取还是用传统的方式开发,没有做前后端分离。这次准备用 vue2.x 和 ThinkJS 3.X 重新写一次。这里主要记录一下开发过程中遇到的问题和解决方法。</p> <p>地址 <a href="https://github.com/lscho/ThinkJS-Vue.js-blog" rel="nofollow noreferrer"></a><a href="https://github.com/lscho/ThinkJS-Vue.js-blog" rel="nofollow noreferrer">https://github.com/lscho/Thin...</a></p> <p>尚未写完,持续更新中,后续更新发布在个人博客中:<a href="https://lscho.com/tech/vue-thinkjs.html" rel="nofollow noreferrer"></a><a href="https://lscho.com/tech/vue-thinkjs.html" rel="nofollow noreferrer">https:/

微服务Consul系列之服务部署、搭建、使用

狂风中的少年 提交于 2021-02-14 02:29:11
使用Consul解决了哪些问题: 是否在为不同环境来维护不同项目配置而发愁 是否有因为配置的更改,导致代码还要进行修改、发布,因为客流量大了还要规避开高峰期等到半夜来发布 微服务架构下,应用的分解,业务系统与服务系统之间的调用管理 以上只是列举的笔者曾经遇到的几点问题,当然问题还不止于这些,下面介绍的Consul可以有效解决这些问题,当然还有一些其它的优点,让我们一起期待下文的Consul的讲解。 Consul的四大核心特性: 服务发现: 可以方便的实现服务注册,通过DNS或者HTTP应用程序可以很容易的找到他所依赖的服务. Key/Value存储: 使用Key/Value进行数据存储。 多数据中心: Consul支持开箱即用的多数据中心。这意味着用户不需要担心建立额外的抽象层让业务扩展到多个区域 健康检查: 可以对指定服务进行健康检查例如,Response Status是否为200,避免将流量转发到不健康的服务上。 Consul架构 图片来自官网 Consul Architecture 上图很好的展示了Consul对于多数据中心的支持,另外在两个数据中心之间只有Service层可以相互通信。 Consul是一个分布式高可用的系统,一个发现和配置服务的工具。客户端可以利用它提供的API注册和发现服务,及监控检测功能实现服务的高可用,深入的架构描述具体细节,可以参考官网Consul

微服务Consul系列之集群搭建

旧街凉风 提交于 2021-02-13 23:43:32
在上一篇中讲解了Consul的安装、部署、基本的使用,使得大家有一个基本的了解,本节开始重点Consul集群搭建,官方推荐3~5台Server,因为在异常处理中,如果出现Leader挂了,只要有超过一半的Server还处于活跃状态,consul就会重新选举新的Leader,保证集群可以正常工作。 准备工作 测试用建议本地搭建几台虚拟机用于调试,这里的虚拟机分别为3台Server模式,1台Client模式,共以下4台: 192.168.6.128 Server模式(初始设置为Leader) 192.168.6.129 Server模式 192.168.6.130 Server模式 192.168.6.131 Client模式 下载相应平台版本的Consul解压copy至 /usr/local/bin/ (系统的环境变量)目录,这里以1.4.0版本为例,具体安装参照上篇-consul下载安装指南。 创建 /usr/src/consul 目录,存放Consul的启动配置文件 consul_config.json : { "datacenter" : "consul_cluster" , "node_name" : "consul_1" , "server" : true , "bootstrap_expect" : 3 , "data_dir" : "/usr/src/consul

Postman之newman安装使用

佐手、 提交于 2021-02-13 21:35:49
1. 先安装node.js , 下载地址:https://nodejs.org/en/ ,双击后根据提示下一步安装完成 2. 在dos窗口中分别输入 :node -v ,npm -v 查看node , npm安装,如下图所示表示安装好了 3. 输入命令安装newman:npm istall -g newman进行安装,然后newman -v 检查 4、从postman上下载一个接口测试集(collections)文件和环境变量文件(均为json文件) 5、打开cmd命令窗口,输入Newman命令执行测试 命令一:直接在cmd显示测试结果 newman run F:\test.json -e F:\environment.json 命令二:生成HTML报告查看 newman run F:\test.json -e F:\environment.json -k -r html --reporter-html-export htmlOut.html 6、查看HTML报告 来源: oschina 链接: https://my.oschina.net/u/4327596/blog/3426276

Postman + newman + jenkins 的API自动化测试应用

回眸只為那壹抹淺笑 提交于 2021-02-13 20:57:03
一、环境配置 Postman postman 的具体使用可以参考另外一篇文章: postman 做接口测试之学习笔记 Newman 第一步,安装nodejs。 第二步,在nodejs命令行安装newman,即命令行输入如下命令: npm install -g newman jenkins 去官网( https://jenkins.io/index.html )下载jenkins 二、Postman + Newman + jenkins 的使用 1. 在postman中导出testcase 文件夹(即存各个接口的collection文件夹)和设置的环境变量文件。 如下所示,导出来的是个json 格式的文件 2. jenkins配置 注意:如果是安装在本地的Jenkins,要将jenkins开启,切换到jenkins.war 的路径下, 执行 java -jar jenkins.war 则可以开启了。 在jenkins上配置如下图,这个路径就是上面通过postman导出文件的路径。 剩下的就是jenkins的常规操作了,比如设置好邮箱后点击立即构建或者设置多久构建一次,这样自动化就跑起来了,等待自动化测试结束后我们就可以收到测试成功或者失败的测试报告邮件了(依赖于设置)。 通过上面这些步骤即可完成基于postman和Jenkins的自动化接口测试。 Newman的使用: 可以参考:

使用 TypeScript 和依赖注入实现一个聊天机器人[每日前端夜话0x76]

不问归期 提交于 2021-02-13 10:02:41
每日前端夜话 0x76 每日前端夜话,陪你聊前端。 每天晚上18:00准时推送。 正文共:3509 字 预计阅读时间: 10 分钟 翻译:疯狂的技术宅 来源: toptal 类型和可测试代码 是避免错误的两种最有效方法,尤其是代码随会时间而变化。我们可以分别通过利用 TypeScript 和依赖注入(DI)将这两种技术应用于JavaScript开发。 在本 TypeScript 教程中,除编译以外,我们不会直接介绍 TypeScript 的基础知识。相反,我们将会演示 TypeScript 最佳实践,因为我们将介绍如何从头开始制作 Discord bot、连接测试和 DI,以及创建示例服务。我们将会使用: Node.js TypeScript Discord.js,Discord API的包装器 InversifyJS,一个依赖注入框架 测试库:Mocha,Chai和ts-mockito Mongoose和MongoDB,以编写集成测试 设置 Node.js 项目 首先,让我们创建一个名为 typescript-bot 的新目录。然后输入并通过运行以下命令创建一个新的 Node.js 项目: 1 npm init 注意:你也可以用 yarn ,但为了简洁起见,我们用了 npm 。 这将会打开一个交互式向导,对 package.json 文件进行配置。对于所有问题,你只需简单的按

超级账本HyperLedger:Fabric nodejs SDK的使用(附视频讲解)

自古美人都是妖i 提交于 2021-02-13 07:34:29
作者: 李佶澳 转载请保留: 原文地址 发布时间:2018/04/25 11:11:00 说明 准备合适的node版本 用npm管理依赖包 Example 参考 说明 这是“网易云课堂 IT技术快速入门学院 ”使用的素材。 操作、配置文件和代码讲解视频在 网易云课堂《HyperLeger Fabric进阶实战课》第五章 中。 当前(2018-04-25 11:16:23)fabric的SDK只有java和node是正式的,他倆的文档也是最丰富的。当前支持的node版本是v8.9.0~v9.0,v9.0以上版本不支持(2018-07-15 14:11:01)。 Hyperledger Fabric SDK for node.js 准备合适的node版本 当前支持的node版本是v8.9.0~v9.0,v9.0以上版本不支持(2018-07-15 14:11:01)。 在mac上可以用brew安装node8: $ brew install node@8 $ echo 'export PATH="/usr/local/opt/node@8/bin:$PATH"' >> ~/.bash_profile $ source ~/.bash_profile $ node --version v8.11.3 或者直接下载安装: nodejs download 用npm管理依赖包

Resource was blocked due to MIME type mismatch using pug and node

筅森魡賤 提交于 2021-02-13 05:44:10
问题 I'm trying to render a view with an id in the url: router.get('/employee', authController.protect, viewsController.getOverviewEmployee); router.get('/employee/:id', authController.protect, viewsController.getOneEmployee); The /employee works fine, but when I get to the /employee/:id page the css and scripts won't load and the console shows me this error: The resource from “http://127.0.0.1:3000/employee/lib/bootstrap/css/bootstrapmin.css” was blocked due to MIME type (“application/json”)