-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
登录失败! #3
Comments
感谢回复,已尝试你提供的思路,修改 补充在 问题复现参考 https://github.com/eggjs/egg)](https://github.com/eggjs/egg 新建项目,将 home.js const { Controller } = require("egg");
class HomeController extends Controller {
async index() {
const { ctx } = this;
ctx.session.index = "index";
ctx.body = "hi, egg";
}
async pointA() {
const { ctx } = this;
ctx.body = ctx.session.index;
console.log("pointA Session", ctx.session.index);
}
async pointB() {
const { ctx } = this;
ctx.session.pointB = "pointB";
ctx.body = ctx.session.index;
console.log("pointB Session", ctx.session.index);
}
async pointC() {
const { ctx } = this;
ctx.body = `${ctx.session.index} ${ctx.session.pointB}`;
console.log("pointC Session", ctx.session.index, ctx.session.pointB);
}
}
module.exports = HomeController; router.js /**
* @param {Egg.Application} app - egg application
*/
module.exports = (app) => {
const { router, controller } = app;
router.get("/", controller.home.index);
router.get("/pointA", controller.home.pointA);
router.post("/pointB", controller.home.pointB);
router.post("/pointC", controller.home.pointC);
}; config.default.js /**
* @param {Egg.Application} app - egg application
*/
module.exports = (app) => {
const { router, controller } = app;
router.get("/", controller.home.index);
router.get("/pointA", controller.home.pointA);
router.post("/pointB", controller.home.pointB);
router.post("/pointC", controller.home.pointC);
}; 访问主页浏览器访问 访问pointA访问 终端显示如下: 访问pointB访问 终端显示如下: 访问pointC访问 终端显示如下: 结论说明在 这是在 #3 (comment) 环境中测试的结果,由于对egg这个框架不是很了解,最终还是用了 #3 (comment) 提到的思路解决目前的问题,希望作者或者其他有缘人能提供更好的思路😊👏。 |
已⭐,感谢作者的开源贡献👏👏👏
环境
情况复现
将项目
clone
到本地后,分别按照Xmw_server和Xmw_web项目的README文件安装相关的包。新建vue2_baiwumm_com
数据库(Xmw_server项目中的config.default.js
可见),并将作者博客提供的SQL文件将数据库数据导入。之后执行yarn run debug
命令启动后端项目,修改前端项目的API请求地址为本地刚启动的后端地址,再执行yarn serve
启动前端项目。如下图所示,可以正常地从本地获取验证码:
输入用户名
admin
和 密码123456
后,前端页面显示如下:终端显示如下:
尝试方案
通过调试发现Xmw_server项目的
home.js
文件定义的generateVerifCode
方法:将验证码保存到
ctx.session.verifCode
中,然后在同文件的login
方法中,获取ctx.session.verifCode
时的值为undefined
。导致出现
login方法报错:TypeError: Cannot read properties of undefined (reading 'toLowerCase')
错误。我的解决方案是,在
home.js
顶部增加了一个全局的let globalScopeVerifCode = ""
变量,然后在generateVerifCode
方法中增加一条赋值语句globalScopeVerifCode = captcha.text.toLowerCase();
,最后将login
方法的中的代码段:改为:
可正常登录并进入系统中。
问题
请问作者有遇到这个问题吗?如何解决的呢?
期待回复😊😊😊
The text was updated successfully, but these errors were encountered: