gpt4 book ai didi

javascript - 如何修复 JSON.parse() 命令中不需要的异常

转载 作者:行者123 更新时间:2023-11-29 16:20:26 29 4
gpt4 key购买 nike

当用户信息正确时,身份验证没问题,但输入错误的详细信息后,服务器会崩溃

passport.use(new LocalStrategy({
usernameField: 'password',
passportField: 'username'
},
function(username, password, done) {
con.query("SELECT * FROM uids WHERE list =" +"'" + username + "'", function (err, result) {
if (err) done(err);
var clean = JSON.parse(JSON.stringify(result))[0].list //Expected Result : test2
//from [ RowDataPacket { list: 'test2' } ]

//no user was found

if(username === clean) {
//Success
return done(null, true);
} else {
//Wrong password
return done(null, false);
}
});
}
));

来自服务器的错误:

  throw err; // Rethrow non-MySQL errors
^

TypeError: Cannot read property 'list' of undefined

我明白出了什么问题,但我不知道是否有一个函数可以检查列表是否存在

var mysql = require('mysql');

var con = mysql.createConnection({
host: "localhost",
user: "dawg111",
password: "poopingboy111",
database: "mydb"
});

con.connect(function(err) {
if (err) throw err;
console.log("Connection to Database is ok!");
});

const LocalStrategy = require('passport-local').Strategy;
passport.use(new LocalStrategy({
usernameField: 'username',
passportField: 'password'
},
function(username, password, done) {
con.query('SELECT * FROM uids WHERE list = ?', [username], function (error, results, fields) {
if (error) throw error;
console.log(results);
});
}
));

最佳答案

这里不需要 JSON.stringifyJSON.parse。你没有任何 JSON。 results 应该已经是一个数组,因此您可以直接使用它,而无需将其与 JSON 相互转换。

如果您想检查是否确实有结果,则 if (results) 将确保定义结果变量(尽管我怀疑它总是会这样,但有时其中可能没有条目) 。

因此,如果定义了 results,并且您想要检查行数,则 if (results.length > 0) 将完成这项工作 - 这就是方法您检查任何 JavaScript 数组的长度。

所以总的来说,你可以做这样的事情:

      con.query('SELECT * FROM uids WHERE list = ?', [username], function (error, results, fields) {
if (error) throw error;// ok
console.log(results); // [ RowDataPacket { list: 'test2' } ]

if (results.length > 0){
var clean = results[0].list //Expected Result : test2

if(username === clean) {
//Success
return done(null, true);
//...etc

关于javascript - 如何修复 JSON.parse() 命令中不需要的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54550539/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com