2017-06-29 7 views
1

Wenn ich versuche, eine Funktion aufzurufen, findpen() Ich erhalte eine Fehlermeldung:Jeder Schlüssel muss eine Anzahl von Zeichenfolgen sein; bekam undefined

each key must be a number of string; got undefined.

Kann jemand bitte helfen? Gibt es ein Problem beim Deklarieren von Variablen?

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) 
    } 
    }); 

} 

Antwort

2

Erstens haben Sie einen Tippfehler in dem Wort „Beschreibung“ in der SQL-Abfrage, und Sie sind zur Zeit nicht Umgang mit dem Fall, wenn keine Zeilen zurückgegeben werden. Das könnte dir Probleme bereiten.

Zweitens gibt findPen() nichts zurück - die Verbindungsabfrage innerhalb von findPen() gibt accountNumber zurück, aber findPen() macht dann nichts damit. Sie müssen die Abfragefunktion am Ende von findPen() aufrufen und zurückgeben.

Als einfaches Beispiel, dieser Code wird den Fehler erzeugen, wenn sie, wie Sie getan haben genannt:

var buzz; 

function foo() { 
    var bar = function() { 
     buzz = 1; 
     return buzz; 
    } 
} 

Es würde so nur die Änderung bedarf richtig zurückzukehren:

var buzz; 

function foo() { 
    var bar = function() { 
     buzz = 1; 
     return buzz; 
    } 
    return bar(); 
} 
+0

Nö. Ich bin in der Lage, richtig mit der DB zu verbinden, und ich kann das Konto no in der Konsole drucken. das einzige Problem, das ich gegenüberstelle, ist, dass ich nicht in der Lage bin, die Ausgangskontonummer in var ofrecord zu speichern und es in sendkeys – raja

+0

zu übergeben, sehen Sie bitte meine aktualisierte Antwort. –

Verwandte Themen