今天的第一件事就是解决昨天的遗留问题,昨天脑子不太清醒。
先根据错误信息一步一步慢慢改
昨天的一个mysql模块的使用有bug,今天来改正-
export default pool.promise()
^TypeError: pool.promise is not a function
首先是报了这个错误。
我是按照视频里面写的,我看他写导出pool.promise()并没有问题。
于是我打印了pool,发现信息如下
Pool { _events: [Object: null prototype] {}, _eventsCount: 0, _maxListeners: undefined, config: PoolConfig { acquireTimeout: 10000, connectionConfig: ConnectionConfig { host: '127.0.0.1', port: 3306, localAddress: undefined, socketPath: undefined, user: 'root', password: 'admin123', database: 'my_db_001', connectTimeout: 10000, insecureAuth: false, supportBigNumbers: false, bigNumberStrings: false, dateStrings: false, debug: undefined, trace: true, stringifyObjects: false, timezone: 'local', flags: '', queryFormat: undefined, pool: [Circular *1], ssl: false, localInfile: true, multipleStatements: false, typeCast: true, maxPacketSize: 0, charsetNumber: 33, clientFlags: 455631 }, waitForConnections: true, connectionLimit: 10, }, _acquiringConnections: [], _allConnections: [], _freeConnections: [], _connectionQueue: [], [Symbol(kCapture)]: false }
connectionConfig里面是数据库的关键信息,于是我又写
-
export default pool.ConnectionConfig()
^TypeError: pool.ConnectionConfig is not a function
还是这样的报错信息,于是最后我决定不搞花里胡哨,按照以前学的来,就直接导出pool,于是这个问题解决了,出现了新错误
-
import {getAllUser} from ‘…/controller/user_ctrl.js’
^^^^^^^^^^
SyntaxError: The requested module ‘…/controller/user_ctrl.js’ does not provide an export named ‘getAllUser’看到这个问题,我去看了我的导出 用了exports default ,然而我导入时候用import {getAllUser} from ‘’,这是个很低级的错误呀,exports default导出的应该直接接收,不要套花括号
-
file:///E:/VSCode%20Work/mysql_vue/router/user_router.js:5
^ReferenceError: router is not defined
这同样是个低级错误,定义名字和使用时候的名字不一样,修改完成
-
ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘users’ at line 1
现在报的是这样的错误信息了,说我有个数据库的语法没写对,希望我能去改正。
我就去找了。
发现在查询信息 时候少写了一个from,导致sqlstr就是一个字符串,修改完成后,程序正常运行了。
const sqlstr = ‘select * from users’
-
Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
这个报错可能是因为响应了两次,可以检查是不是两个地方都进行了res.send()
-
Cannot mix different versions of joi schemas
它提示了是个版本问题,所以用 npm i joi 命令重新下载,并且这个在引入这个包的时候,要用
const joi = require(‘joi’)
-
使用postman进行登陆验证,一直给我提示 密码错误。
于是我找到写的关于这个提示信息的地方:
//判断密码是否正确
const compareResult**=**bcrypt.compareSync(userinfo.password,results[0].password)
if(**!**compareResult) return res.cc(‘密码错误’)
我发现并没有,那么错误是出在哪了呢,我又找回到得到userinfo.password的地方
userinfo.password = bcrypt.hashSync(userinfo.username,10)
我为什么会把用户密码写成把用户名加密的值?应该是敲.的时候tab直接给提示出来了,然而我并没有认真看,所以导致了这样,修改过后果然好了。
说明我们要细心点,起码不要因为敲错了而出bug
userinfo.password = bcrypt.hashSync(userinfo.username,10)
-
app.use(expressJWT({secret:config.jwtSecretKey})).unless({path:[/^/api/]})
^ReferenceError: Cannot access ‘config’ before initialization
这个问题很明显,是因为我需要的config在这时候没有,所以说要把引入他的文件放到这个语句之前
-
app.use(expressJWT({secret:config.jwtSecretKey}).unless({path:[/^/api//]}))
^
TypeError: Cannot read property ‘jwtSecretKey’ of undefined
只要报Cannot read property 'xxx of undefined,那么我们就去看它前面的对象,所以说我去看config,引入的时候使用解构赋值引的,但是现在需要取对象,那么我们就直接把他引进来就好了
const config = require(“./config”)
今天主要就是做项目,出bug,改bug的过程,感觉改bug还是很有用的,提升解决问题的能力并且反思容易出错的地方,然后以后最好能注意到犯过的错,尽量减少犯错。
最后,希望我犯过的错可以为你改bug提供到一点帮助~
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)