Egg.js 为企业级框架和应用而生。我们希望 Egg.js 能孕育出更多上层框架,帮助开发团队和开发人员降低开发和维护成本。Egg 的插件机制具备很高的可扩展性,一个插件仅完成一件事情(例如 Nunjucks 模板封装成了 egg-view-nunjucks,MySQL 数据库封装成了 egg-m…
在 Web 开发中,图片上传并添加水印是非常常见的业务需求,比如图片素材溯源、版权保护、场景信息标注等。本文将基于 Egg.js 框架,结合 gm 图像处理库和 OSS 存储服务,实现一套“图片上传-添加地址+时间水印-上传至 OSS”的完整接口方案。 一、接口设计与文档说明…
Eggjs 默认在没有任何输出的时候,返回的状态就是 404,这是一种情况,还有种情况就是我们本身就没有内容,用户访问了一个错误的 URL 网址,这些情况的 404 我们完全可以自定义一个页面,添加一些样式和功能,提高我们网站的用户体验。 1、首先创建一个中间件 // app\middleware\…
egg-validate 是基于 parameter 的 eggjs 字段验证模块,可以验证我们日常开发中的大多数字段类型和数据,如果插件不满足你的需求,你还可以自定义验证规则。 安装 npm install --save egg-validate 启用 // config/plugin.js ex…
egg-mysql 是一个用于 egg 框架的阿里云 rds 客户端,支持 mysql portocal。 安装 $ npm i egg-mysql --save Egg 的 MySQL Plugin,支持 egg 应用访问 MySQL 数据库。本插件基于 ali-rds ,具体用法可参考 ali-…
为了共享用户数据,在 Eggjs 里面设置登录信息,然后前端直接读取,发现无论怎么读取,都是 undefined,一度怀疑是不是之前的工具函数有问题了,仔细查看了 Eggjs 的文档,发现在使用 cookie 的时候必须要设置的几个参数,其中 httpOnly 需要设置为 false,signed …
最近在本地部署 EggJS 项目,准备启动开发版本测试时,刚运行 npm start 命令就遭遇启动失败,控制台直接抛出 Error: spawn tail ENOENT 错误,一开始盯着报错信息误以为是系统命令问题,绕了不少弯路。 相信很多用 Windows 系统开发 EggJS 的同学,都大概率…
在 7001 端口被占用时,再启动 egg 框架, app.config.cluster.listen.port 参数不生效,转而监听 7002 端口。 自定义监听端口,网上的文档都是说添加配置: // 自定义启动端口 config.cluster = { listen: { path: '', p…
在一个资源类站点或下载站中, 搜索功能几乎是核心入口 。无论是种子、文章还是商品,用户访问站点的第一诉求往往是「快速找到想要的内容」。本文将结合 Egg.js 框架,介绍一个 搜索 Controller 的完整实现思路 ,包括: 查询参数的标准化处理 调用搜索 Service 获取匹配结果 二次查询…
在基于 Egg.js 构建的后端应用中, Service 层 主要负责处理业务逻辑,是 Controller 与数据层之间的重要桥梁。 本文将以一个 Torrent(种子)管理模块 为例,详细讲解如何编写一个结构清晰、功能完整的 torrent service 操作文件。 该 Service 主要围…
在上一篇文章中,我们已经成功将 Web 服务跑了起来,整体的 Egg.js 项目结构也已经搭建完成。接下来,就进入一个非常关键的环节: 连接搜索引擎服务,实现真正可用的搜索能力 。 本文将以 Manticore Search 作为全文检索引擎,通过 MySQL 协议 与 Egg.js 服务进行通信,…