我想检查mysql中存在的记录,我在Node js中工作。我的代码是:
//Some code before where I get classes
for (var m = 0; m <= (classes.length-1); m++) {
var Myurl = classes[m];
(function(Myurl){
var connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'password',
database: 'mydatabase',
});
connection.connect();
//How do I write the query correctly?
var query = connection.query('SELECT * FROM mydatabase WHERE UrlLink=? LIMIT 1', [Myurl], function(err, rows, fields) {
if (err)
throw err;
SqlNames = rows;
logNames();
//If UrlLink is not present in mydatabase, then I want to proceed with:
request(Myurl, function(err, resp, body) {
// ...
}
});
function logNames() {
console.log(SqlNames);
}
connection.end();
};
})(Myurl);
所以,我想检查数据库中是否存在记录,如果它不存在,我想处理请求,并将其添加到数据库中。现在我收到一个错误:
未定义连接
答案 0 :(得分:0)
您的连接未定义的原因是您在JavaScript闭包中创建它。初始化函数内部的变量时,其作用域会阻止从该函数外部访问它。
以下是一些示例代码:
var Myurl = classes[m];
var connection = mysql.createConnection({ // Notice how this is not in a function?
host : 'localhost',
user : 'root',
password : 'password',
database : 'mydatabase',
});
connection.connect();
// Just like before.
在不知道您的数据库架构的情况下,我无法告诉您这是否是正确的查询,但它看起来正确无误。