请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

module.exports报错问题

老师好
db.js代码如下。
这样写会报错:Client does not support authentication protocol requested by server;
consider upgrading MySQL client

可是把module.exports改成 module.exports=MYSQL_CONFIG就不会报错。这是为什么啊

const env=process.env.NODE_ENV

let MYSQL_CONFIG
let REDIS_CONFIG

if(env==="dev"){
    MYSQL_CONFIG={
        host:"localhost",
        user:"root",
        password:"lwjkkkbbb1997",
        port:"3306",
        database:"myblog"
    }
    REDIS_CONFIG={
        port:"6379",
        host:"127.0.0.1"
    }
}
if(env==="production"){
    MYSQL_CONFIG={
        host:"localhost",
        user:"root",
        password:"lwjkkkbbb1997",
        port:"3306",
        database:"myblog"
    }
    REDIS_CONFIG={
        port:"6379",
        host:"127.0.0.1"
    }
}

module.exports={
    MYSQL_CONFIG,
    REDIS_CONFIG
}

正在回答 回答被采纳积分+3

1回答

双越 2020-01-30 20:24:37

你修改了 module.exports = MYSQL_CONFIG ,肯定得相应的去修改 require 的地方,否则应该直接就语法报错了。

至于 Client does not support authentication ... 这个错误,我觉得应该和 module.exports 没关系。具体解决方法,可以百度查下,很常见的问题。

0 回复 有任何疑惑可以回复我~
  • 提问者 渡____ #1
    我之前一路下来都没有遇到过mysql报错的问题。可是今天学到将redis配置到db.js就一直报错。反正就是如果不用大括号就可以正常运行。
    
    比如这样:module.exports=MYSQL_CONFIG,REDIS_CONFIG
    可是这样就会报刚刚那个错:module.exports={MYSQL_CONFIG,REDIS_CONFIG}
    回复 有任何疑惑可以回复我~ 2020-01-30 20:32:58
  • 提问者 渡____ #2
    老师我想了半天。可能是因为db.js暴露的是两个对象,而在mysql.js和redis.js中引用的时候我只是写了const MYSQL_CONF而不是const {MYSQL_CONF}。   现在才发现这是解构赋值。当时觉得老师这样加个大括号是多此一举。。。
    
    不知到我这样理解正不正确
    回复 有任何疑惑可以回复我~ 2020-01-30 21:02:45
  • 双越 回复 提问者 渡____ #3
    对的,大括号肯定是有作用的。
    回复 有任何疑惑可以回复我~ 2020-01-31 16:17:38

相似问题

登录后可查看更多问答,登录/注册

问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信