0
votes

Mongoose insertmany () Retour Rappel n'est pas une erreur de fonction lors des options de passage

J'utilise Mongoose version 4.7.2 et besoin d'insérer une quantité en vrac de données dans une collection sans duplicate et des erreurs de validation en tant que promesse .

code: xxx

en essayant d'insérer les documents à l'aide d'insertmany () L'erreur suivante s'est produite.

TypeError: Callback n'est pas une fonction

erreur dans la console

Il n'y a pas d'erreur lorsque je supprimai {commandé: false} de mon code.


0 commentaires

3 Réponses :


0
votes

Vous devez fournir une fonction de rappel afin que lorsque la fonction termine le traitement, elle peut redonner les résultats. Voir la documentation ici

https://mongoosejs.com/docs/api.html#model_model.insermany


2 commentaires

J'en ai besoin comme une promesse ()


avez-vous ajouté ce code const mangoose = exiger ('mangouse'); mangoose.promise = global.promise; ?



0
votes

Votre code doit être comme suit:

module.exports.addCustomers = function (customers) {
   return Customer.insertMany(customers,{ordered :false}, function(err, res){
     if(err) { 
       //handle error here
     } else {
       //DO stuff if you got response
     }
 )}


1 commentaires

Obtenir toujours la même erreur. Je pense que c'est une erreur de la version de la mangouste.



0
votes

C'est un peu étrange. Il devrait être capable de travailler sans le rappel, si vous traitez la réponse comme une promesse. Vous pouvez essayer d'exécuter la requête dans votre fonction:

module.exports.addCustomers = async function (customers) {
    const result = await Customer.insertMany(customers, {ordered: false})
    return result
}


0 commentaires