2017-08-09 6 views
-1

ich den Fehler bekommen, während Sie den folgenden Code in Node.js ausgeführt wird: Typeerror: am nächsten ist keine Funktionist neben keine Funktion

function lastmessage(collection, path, conf, conf2, next) { 
    let tmp = conf === 0 ? hotelcode : parseInt(hotelcode); 
    db.collection(collection).find({ 
     [path]: tmp 
    }).sort({ 
     'created_at': -1 
    }).toArray(function(error, docs) { 
     if (error) return next(error); 
     if (docs.length > 0) { 
      if (conf2 === 0) { 
       console.log(docs[0].updatedAt); 
       return next(null, docs[0].updatedAt); 
      } 
      console.log(docs[0].created_at); 
      return next(null, docs[0].created_at); 
     } 
     console.log('empty'); 
     return next(null, 'empty'); 
    }); 
} 

Was mache ich falsch?

+1

Was kommt als nächstes? Wie nennst du 'lastmessage', klingt, als würdest du keinen Rückruf für' next' liefern – ste2425

+0

Ich denke, es scheint ziemlich offensichtlich: der fünfte Parameter, den du an diese Funktion übergibst, ist keine Funktion –

+0

Also, ich nehme 'next' ist Ihre Callback-Funktion, also müssen Sie an der Stelle des Aufrufs von 'lastmessage' eine Callback-Funktion bereitstellen. – Rowland

Antwort

0
// callback function 
function someFunc(holder, document) { 
// do stuff 
} 

// when calling lastMessage, of course there won't be null values. 
lastMessage(null, null, null, null, someFunc); 
1

Ich denke, wenn die fünfte param Sie in dieser Funktion setzen eine Funktion ist, sollten Sie die Funktion nächsten Erstgenannten definieren.