每个键必须是多个字符串;未定义

时间:2017-06-29 04:51:36

标签: protractor

当我尝试访问某个函数时,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)
    }
     });

}

1 个答案:

答案 0 :(得分:2)

首先,你在单词"描述"中有一个拼写错误。在您的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();
}