当我尝试访问一个函数时,findpen()我收到一个错误:
每个键必须是多个字符串;未定义。
有人可以帮忙吗?声明变量有什么问题吗?
var mysql = require('../../node_modules/mysql');
describe ('protractor Demo', function() {
it ('login',function(done)
{
............
............
Console.log ('login sucess')
});
it('E2E',function(done)
{
var ofrecord = findPen();
browser.sleep(12000);
browser.element(by.css('div > input')).sendKeys(ofrecord);
browser.actions().sendKeys(protractor.Key.ENTER).perform().then(function()
{
console.log('reference # is searched sucessfully');
})
var accountnumber;
function findPen()
{
var connection = mysql.createConnection
({
host: 'host',
user :'user',
password :'password',
database:'database'
});
connection.connect(function(){
console.log('DB is connected');
});
connection.query("SELECT * from TEST where TEST Descrption='TCRC' LIMIT 1",function(err,rows)
{
if (!err)
{
console.log("result is :", rows[0].Tentacles);
accountnumber=rows[0].Tentacles;
console.log("output is :", accountnumber);
return accountnumber;
}
else
{
console.log("Error"+err)
}
});
}
首先,在SQL查询中的“描述”一词中有一个拼写错误,当前没有返回任何行时,您当前没有处理这种情况。这可能会导致你的问题。
其次,findPen()不返回任何内容 - findPen()中的连接查询返回accountNumber,但findPen()不会对此做任何事情。您需要在findPen()的末尾调用并返回查询函数。
作为一个非常简单的示例,此代码将在您完成时调用时产生错误:
var buzz;
function foo () {
var bar = function() {
buzz = 1;
return buzz;
}
}
它只需要像这样修改才能正确返回:
var buzz;
function foo () {
var bar = function() {
buzz = 1;
return buzz;
}
return bar();
}