J'ai essayé Tutoriel W3schools sur nodeJS avec MongoDB.
Lorsque j'essaie de mettre en œuvre cet exemple dans un environnement nodeJS et d'invoquer la fonction avec un appel AJAX, j'obtiens l'erreur ci-dessous :
TypeError: db.collection is not a function
at c:\Users\user\Desktop\Web Project\WebService.JS:79:14
at args.push (c:\Users\user\node_modules\mongodb\lib\utils.js:431:72)
at c:\Users\user\node_modules\mongodb\lib\mongo_client.js:254:5
at connectCallback (c:\Users\user\node_modules\mongodb\lib\mongo_client.js:933:5)
at c:\Users\user\node_modules\mongodb\lib\mongo_client.js:794:11
at _combinedTickCallback (internal/process/next_tick.js:73:7)
at process._tickCallback (internal/process/next_tick.js:104:9)
Veuillez trouver ci-dessous le code que j'ai implémenté :
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/mytestingdb";
MongoClient.connect(url, function(err, db) {
if (err) throw err;
db.collection("customers").findOne({}, function(err, result) {
if (err) throw err;
console.log(result.name);
db.close();
});
});
Notez que l'erreur se produit chaque fois que l'exécution frappe :
db.collection("customers").findOne({}, function(err, result) {}
Notez également (au cas où cela aurait de l'importance) que j'ai installé le dernier paquet MongoDB pour node JS ( npm install mongodb ), et la version de MongoDB est MongoDB Enterprise 3.4.4, avec le pilote MongoDB Node.js v3.0.0-rc0.
1 votes
Avez-vous vérifié : (1) la base de données fonctionne (étant donné qu'il n'y a pas eu d'erreur, je suppose que oui) ; (2) la base de données mytestingdb existe (essayez d'utiliser robomongo/robo3t pour accéder à votre connexion et voir les collections) (3) la collection customers existe réellement ; Dites-nous également comment vous appelez ce script et quelle version de Nodejs (comment l'avez-vous installé ?)
0 votes
La base de données et la collection existent (j'y ai accédé en utilisant Studio 3t). Je débogue nodeJS en appelant la méthode par le biais d'un appel AJAX, en fait les points d'arrêt sont atteints et tout fonctionne bien jusqu'à ce que j'obtienne l'exception mentionnée ci-dessus. La version de NodeJS est v6.11.4.
0 votes
Ensuite, remplacez le code qui commence par
db.collection()...
avec un journal de la console pour voir s'il y arrive, pas de problème.0 votes
La base de données et la collection existent (j'y ai accédé en utilisant Studio 3t). Je débogue nodeJS en appelant la méthode par un appel AJAX, les points d'arrêt sont atteints et tout fonctionne bien jusqu'à ce que j'obtienne l'exception mentionnée ci-dessus. La version de NodeJS est v6.11.4.
0 votes
Duplicata possible de stackoverflow.com/questions/43779323/ stackoverflow.com/questions/34827397/
0 votes
Veuillez spécifier le paquet npm
mongodb
version. Elle se trouve dans votre package.json et N'EST PAS la version de votre serveur Mongo. Selon la documentation, votre code devrait être correct. mongodb.github.io/node-mongodb-native/2.2/tutorials/crud0 votes
Pourriez-vous ajouter
console.log(db)
avantdb.collection
ou un journal encore plus détaillé pour voir ce qu'il y a dedansdb
?0 votes
J'ai accédé au fichier du paquet dans les modules du nœud mongodb, "version" : "3.0.0-rc0"
0 votes
Je dois donc télécharger et installer la dernière version de mongodb et réessayer.
0 votes
Mise à niveau de la base de données MongoDB ou des modules de nœuds des paquets mongodb ?
0 votes
Merci d'envisager de voter pour AyoO pour sa solution.