egg项目搭建 常见问题解决
1.这里直接发起 POST 请求会报错
// app/router.js
module.exports = (app) => {app.router.post('/form', app.controller.form.post);
};// app/controller/form.js
exports.post = async (ctx) => {ctx.body = `body: ${JSON.stringify(ctx.request.body)}`;
};
这里在写例子的话可临时在 config/config.default.js
中设置
config.security = {csrf: {enable: false,// ignoreJSON: true,},// domainWhiteList: [ '*' ], // 配置白名单};
2.npm install egg-mysql 且配置过后后。npm run dev.报错
这是因为 8.0 之前的 mysql
版本,加密规则是 mysql_native_password
,而在 8.0 之后,加密规则变为 caching_sha2_password
。此时你如果用的是 8.0 以前的版本,那么通过 egg
启动项目连接数据库是没问题的,我们这里使用的是 8.0 以后的版本,所以就会出现上述错误
解决办法:
通过 mysql -u root -p
回车进入 mysql
如下所示:
use mysql;
alter user 'root'@'localhost' identified with mysql_native_password by '你的密码';
flush privileges;
上述指令的作用是,还原 MySQL
的加密规则,还原之后,你再 egg
项目中连接 MySQL
的时候,就不会报错了。
3.注意的变量
4.为什么使用Token
采用的鉴权模式是 token
令牌模式,出于多端考虑,token
可以运用在如网页、客户端、小程序、浏览器插件等等领域。如果选用 cookie
的形式鉴权,在客户端和小程序就无法使用这套接口,因为它们没有域的概念,而 cookie
是需要存在某个域下。
每次发起请求,无论是获取数据,还是提交数据,我们都需要将 token
带上,以此来标识,此次获取(GET)或提交(POST)是哪一个用户的行为。
服务端是怎么通过 token
来判断是哪一个用户在发起请求。既然 egg-jwt
有加密的功能,那也会有解密的功能。通过解密 token
拿到当初加密 token
时的信息,信息的内容大致就是当初注册时候的用户信息
必须在请求头中使用 Authorization 字段提供 token 令牌
const token = ctx.request.header.authorization; // 请求头获取 authorization 属性,值为 token
5.Egg解决ESlint格式报错
6.上传文件
// ctx.request.files[0] 表示获取第一个文件,若前端上传多个文件则可以遍历这个数组对象let f = fs.readFileSync(file.filepath)
let f=fs.readFileSync(file.filepath);let day=moment(new Date()).format('YYYYMMDD')let dir=path.join(this.config.uploadDir,day)let date=Date.now();await mkdirp(dir)uploadDir=path.join(dir,date+path.extname(file.filename));fs.writeFileSync(uploadDir,f)
egg项目搭建 常见问题解决相关推荐
- maven项目搭建常见故障
maven 长篇大论不会.理论不涉及. maven,终究就是一个代码管理工具.要区分与svn/git的区别:git/git是项目管理工具 核心:坐标. 主要好处:不需要维护jar之间的依赖,以及最新版 ...
- springmvc环境搭建以及常见问题解决
1.新建maven工程 a) 打开eclipse,file->new->project->Maven->Maven Project b) 下一步 c) 选择创建的工程为 ...
- Android开发环境搭建及常见问题解决方法
Android开发环境搭建及常见问题解决方法 参考文章: (1)Android开发环境搭建及常见问题解决方法 (2)https://www.cnblogs.com/rwxwsblog/p/476978 ...
- Hadoop环境搭建及常见问题解决(保姆级教程)
Hadoop环境搭建及常见问题解决 零.资源准备 一.环境准备 1. 安装虚拟机 2. 环境准备 1) 创建新用户xiaobai 2) 安装ssh-server 3) 上传相关资源 [4)] 使用pu ...
- 【testlink】TestLink1.9.18常见问题解决方法
前言 TestLink可以有效的管理测试的整个流程,因为测试是跟随着软件的整个生命周期直至结束,所以采用TestLink来管理测试流程. TestLink可以和Redmine的项目进行关联,testl ...
- maven 多项目搭建
参考http://www.cnblogs.com/xdp-gacl/p/3498271.html . 1.什么是maven maven是基于项目对象模型(POM),是跨平台的管理工具,主要服务于jav ...
- [转]2020年排名前20的基于SpringBoot搭建的开源项目,帮你快速进行项目搭建!
△Hollis, 一个对Coding有着独特追求的人△ 这是Hollis的第 287 篇原创分享 作者 l Hollis 来源 l Hollis(ID:hollischuang) SpringBoot ...
- asp.mvc 4项目发布文件目录结构_Spring Boot项目搭建与启动
Spring Boot简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不 ...
- 2020年排名前20的基于SpringBoot搭建的开源项目,帮你快速进行项目搭建!
△Hollis, 一个对Coding有着独特追求的人△ 这是Hollis的第 287 篇原创分享 作者 l Hollis 来源 l Hollis(ID:hollischuang) SpringBoot ...
最新文章
- 从SQL Server CloudDBA 看云数据库智能化
- mysql常见报错解决办法
- 文件读写错误坑 之 UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xac in position
- 关于以追加模式写入文件时,为什么第一行是空行?
- Codeforces Round #584 (Div. 1 + Div. 2)
- 郑州大学远程教育学院C语言程序设计题库(二)
- Excel—“撤销工作表保护密码”的破解并获取原始密码
- 硬件FFT加速模块的应用
- 双系统扩展Linux内存
- 使用grub启动虚拟软盘的方法
- Linux Base VIII 压缩和解压缩命令
- JavaScript 事件委托
- 软件需求工程(第二章)
- 如何在Windows 11上的WSL2做到GPU直通,并用Deepracer本地训练炸干电脑的资源(显卡降价了,618等等党还等什么,一起来加入Deepracer的比赛学习交流吧)
- android 填充内存方法,安卓快速填满手机内存(转载)
- 计算机图形学 使用OpenGL的场景建模
- 贪心绝对值不等式-货仓选址
- 设计师必备的PPT辅助神器-iSlide
- Py之toad:toad的简介、安装、使用方法之详细攻略
- 一张图认识Python(附基本语法总结)