如何使用 ThinkJS 优雅的编写 RESTful API

2020-09-28
阅读 7 分钟
12k
RESTful 是目前比较主流的一种用来设计和编排服务端 API 的一种规范。在 RESTful API 中,所有的接口操作都被认为是对资源的 CRUD,使用 URI 来表示操作的资源,请求方法表示具体的操作,响应状态码表示操作结果。之前使用 RESTful 的规范写过不少 API 接口,我个人认为它最大的好处就是帮助我们更好的去规划整理接口,...

谈谈 MySQL 的 JSON 数据类型

2020-09-14
阅读 10 分钟
29.9k
MySQL 5.7 增加了 JSON 数据类型的支持,在之前如果要存储 JSON 类型的数据的话我们只能自己做 JSON.stringify() 和 JSON.parse() 的操作,而且没办法针对 JSON 内的数据进行查询操作,所有的操作必须读取出来 parse 之后进行,非常的麻烦。原生的 JSON 数据类型支持之后,我们就可以直接对 JSON 进行数据查询和修改等操...

think-mongo 升级适配 MongoDB 4

2020-06-25
阅读 3 分钟
2.4k
今天是端午节,首先祝大家端午节快乐,然后今天要和大家说一下最近对 think-mongo 模块做了一些升级。ThinkJS 3 虽然已经支持使用 think-mongoose 来接入 mongoose 模块,不过因为文档这块默认还是 think-mongo 所以用这个模块的同学还是比较多。而这个模块因为是两三年前开发的了,依赖的 mongodb 模块一直是 2.x 的版...

使用 pkg 打包 ThinkJS 项目

2019-12-30
阅读 5 分钟
4.5k
在 ThinkJS 的用户群里,经常有开发者提出需要对源码进行加密保护的需求。我们知道 JavaScript 是一门动态语言,不像其他静态语言可以编译成二进制包防止源码泄露。所以就出现了 pkg、nexe 之类的工具,支持将 JS 代码连同 Node 一块打包成一个可执行文件,一来解决了环境依赖的问题,二来解决了大家关心的源码保护的问题。

如何将你的 ThinkJS 项目部署到 ZEIT 上

2019-12-02
阅读 5 分钟
3.5k
ZEIT 是免费的云平台,支持部署静态网站以及 Serverless 函数。Serverless 是近几年比较火的概念,简单去理解就是你只需要去实现具体的业务逻辑,而与最终服务相关的服务器、HTTP 服务等则由第三方管理。Serverless 又被称为 FaaS(函数即服务),由于业务粒度非常细,所以非常方便做动态扩容等自动化运维任务。

教你在 Node.js 项目中接入 Sign with Apple 第三方登录

2019-10-30
阅读 9 分钟
4k
在 WWDC19 大会上,苹果公司推出了一项有意思的内容,即 “Sign In with Apple”。这项由苹果提供的认证服务,可以让开发者允许用户使用 Apple Id 来登录他们的应用程序,Sign In with Apple使用OAuth登录授权标准。

WEB 安全漏洞之目录遍历

2019-08-28
阅读 1 分钟
7.8k
第一次接触到目录遍历漏洞还是在 ThinkJS 2 的时候。代码如下图,目的是当用户访问的 URL 是静态资源的时候返回静态资源的地址。其中 pathname 就是用户访问的 URL 中的路径,我们发现代码中只是简单的解码之后就在22行将其与资源目录做了拼接,这就是非常明显的目录遍历漏洞了。

基于 ThinkJS 的 WebSocket 通信详解

2019-06-12
阅读 9 分钟
3.5k
我们的项目是基于 ThinkJS + Vue 开发的,最近实现了一个多端实时同步数据的功能,所以想写一篇文章来介绍下如何在 ThinkJS 的项目中利用 WebSocket 实现多端的实时通信。ThinkJS 是基于 Koa 2 开发的企业级 Node.js 服务端框架,文章中会从零开始实现一个简单的聊天室,希望读者们能有所收获。

What's New in JavaScript

2019-05-11
阅读 6 分钟
7.5k
前几天 Google IO 上 V8 团队为我们分享了《What's New in JavaScript》主题,分享的语速很慢推荐大家可以都去听听就当锻炼下听力了。看完之后我整理了一个文字版帮助大家快速了解分享内容,嘉宾主要是分享了以下几点:

如何解析你,Excel的Date呀

2018-12-06
阅读 3 分钟
5k
简单的背景介绍 不久前,我们接了一个自己做前端后端产品的活,从此过上了可怜巴巴敲代码开开心心收获知识的日子呢。 那是一个平平无奇的周一下午 用户小姐姐在群里说,系统筛选工卡有效期不好使。(系统:不不不,不是我的锅 我看了一下数据库,发现,我们原定的有效期格式是这样的 整整齐齐。 数据库中当时的数据是这...

Web 安全漏洞之 XSS 攻击

2018-11-19
阅读 4 分钟
10.6k
编者说:作为JS系工程师接触最多的漏洞我想就是 XSS 漏洞了,然鹅并不是所有的同学对其都有一个清晰的认识。今天我们请来了@卢士杰 同学为我们分享他眼中的 XSS 漏洞攻击,希望能帮助到大家。

ThinkJS 项目构建 Docker 镜像

2018-05-20
阅读 3 分钟
3k
其实这个话题很简单,不是很想写这篇文章。不过的确还是有很多朋友在打包构建部署上存在一些问题,恰巧最近使用 Docker 部署了几个 ThinkJS 相关的项目,所以还是拿出来说说吧。需要提前说明的是本文并不是 Docker 的基础教程,默认大家都是了解 Docker 的。然后我会分享一下我觉得 ThinkJS 项目构建和部署过程中可能需...

Web框架的常用架构模式(JavaScript语言)

2018-05-16
阅读 6 分钟
3.7k
科学作为一种经验主义的认识论,有着经验主义的巨大缺陷:它永远不能产生绝对正确的真理。这是归纳法的本质决定的。而且值得注意的是,归纳不具有唯一性。

ThinkJS3 升级小记

2018-03-04
阅读 5 分钟
4.9k
ThinkJS3 距离初次发布已有半年的时间,最近花了点时间将 Firekylin 的依赖从 ThinkJS2 升级到 ThinkJS3。这里记录一下升级碰到的一些变化,希望能帮助到大家。

基于 ThinkJS 的文件上传(普通上传,文件预览,压缩上传,分片上传)

2018-01-24
阅读 1 分钟
5.1k
具体实现参见:demo 实现原理简介 上传:FormData + ajax 文件预览 canvas 读取生成 image 压缩图片上传: 原理 canvas.toDataURL实现压缩 实现 FileReader读取文件内容转为img --> canvas读取img --> 输出压缩后的img --> 转为 Blob 对象上传 分片上传: 原理 利用 file.slice 将文件分片 实现 客户端:文件分...

ThinkJS 3.0 如何实现对 TypeScript 的支持

2017-11-15
阅读 6 分钟
3.6k
ThinkJS 3.0 是一款面向未来开发的 Node.js 框架,内核基于 Koa 2.0。 3.0 相比 2.0 版本进行了模块化改造,使得内核本身只包含了最少量必须的代码,甚至还不足以构成一个完整的 Web MVC 框架,除了内核里面实现的 Controller, View 和 Model 被实现为扩展(Extend)模块 think-view 和 think-model,这样实现的好处也...

ThinkJS 3.0 正式版发布!

2017-09-04
阅读 2 分钟
7k
ThinkJS 是一款拥抱未来的 Node.js Web 框架,致力于集成项目最佳实践,规范项目让企业级团队开发变得更加简单,更加高效。我们的 Github 地址是:[链接] 欢迎大家 star~