2017-03-11 5 views
0

Ich bin neu in Node.js und habe ein Problem mit einer Funktion. Diese Funktion funktioniert gut, wenn ich ihn in dieselbe Datei lege. Aber wenn ich es aus einer anderen Datei anrufe, funktioniert es nicht. Wenn ich den Debugger benutze, sehe ich, dass ich die Funktion aufrufen kann, aber wenn ich den Parameter verwende, sagt er immer: ReferenceError: value ist nicht definiert.ReferenceError: Wert ist nicht definiert

documentDBConfig.getById = function (feedId) { 
    return new Promise((resolve, reject) => { 
     client.queryDocuments(
      feedCollectionUrl,    
      'SELECT * FROM feeds r where r.id =' + feedId.toString() 
     ).toArray((err, results) => { 
      if (err) reject(err); 
      else { 
       if (typeof results[0] !== 'undefined' && results[0] !== null) { 
        documentDBConfig.feedsArray = results; 
       } 
       console.log(); 
       resolve(results); 
      } 
     }); 
    }); 
}; 

module.exports = documentDBConfig; 

Nur weil es die sagt immer wieder, habe ich eine Eigenschaft eines gleichen Objekts zu documentDBConfig.feedsId. Aber es sagt immer noch ReferenceError: value is not defined. Im Debugger sieht er den Wert und weist ihn documentDBConfig.feedsId problemlos zu, geht aber nicht in eine andere Datei über. Und ohne den Wert funktioniert das gut. Wie kann ich das beheben?

documentDBConfig.feedsId = req.params.id; 
console.log(documentDBConfig.feedsId); 
    documentDBConfig.getById(documentDBConfig.feedsId) 
     .then(() => res.json(documentDBConfig.feedsArray)); 

Edit: Ich fand, dass das Problem durch die 'SELECT * FROM feeds r where r.id =' + feedId.toString() Abfrage verursacht wird, wenn ich es forexample 'SELECT * FROM rss r where r.id = "5"' fest einprogrammiert schreiben Es funktioniert gut. Ich weiß, dass Documentdb nur Zeichenfolgen für einen ID-Wert akzeptiert, daher habe ich die Methode toString() verwendet. Gibt es dafür noch eine andere Lösung?

Antwort

0

Ich habe das Problem durch das Ändern der Abfrage gelöst.

'SELECT * FROM rss r where r.id =' + '"' + documentDBConfig.feedsId + '"' 

Es funktioniert jetzt gut.

Verwandte Themen