Maison  >  Article  >  interface Web  >  Notes de lecture étonnantes de node.js : base de données mongodb interaction_node.js

Notes de lecture étonnantes de node.js : base de données mongodb interaction_node.js

WBOY
WBOYoriginal
2016-05-16 16:25:051739parcourir

L'étude de cette semaine porte principalement sur l'interaction avec la base de données nodejs, et nous avons utilisé le modèle jade pour créer un site Web de vérification des utilisateurs. Principalement parce que j'ai rencontré quelques problèmes.

La version 1.mongodb est trop basse

npm ERR ! Non compatible avec votre système d'exploitation ou votre architecture : mongodb@0.9.9

0.9.9 ne prend en charge que les systèmes Linux, Darwin et Freebsd, et la dernière version prend en charge Wins.

2. Après que nodejs ait effectué l'opération d'insertion : impossible de lire le résultat

Copier le code Le code est le suivant :

app.post('/signup', function(req, res, next){
//Insérer un document
       app.users.insert(req.body.user, function(err, doc){
If(err) return next(err);
               res.redirect('/login/' doc[0].email);
});
});

Il semble que la redirection ait échoué. La situation réelle est que l'insertion dans la base de données a réussi mais que le doc est vide, sans parler de la valeur de doc[0].email. La raison en est que les opérations telles que l'insertion sont effectuées de manière asynchrone et que les opérations asynchrones ne renvoient pas leurs résultats par défaut pour déterminer si l'opération a réussi. Cette fonction doit être réalisée en ajoutant le troisième paramètre {safe:ture}, c'est-à-dire app.users.insert(req.body.user, {safe:ture}, function(){……}). De cette façon, le résultat est lu avec succès.

3. Un magasin non défini apparaît dans connect-connect

Copier le code Le code est le suivant :

MongoStore = require('connect-mongo')

app.use(express.session({
Secret : settings.cookieSecret,
magasin:nouveau MongoStore({
          db:settings.db
})
}));

Le code source est comme ci-dessus. La raison se révèle être basée sur différentes versions d'Express, et le module connect-mongo est introduit de différentes manières. Il y a également un rappel spécial dans son fichier Readme.md.

Copier le code Le code est le suivant :

Avec express4 :
var session = require('express-session');
var MongoStore = require('connect-mongo')(session);
       app.use(session({
          secret : settings.cookie_secret,
        magasin : nouveau MongoStore({
          base de données : settings.db,
})
}));
Avec express<4 :
var express = require('express');
var MongoStore = require('connect-mongo')(express);
App.use(express.session({
          secret : settings.cookie_secret,
        magasin : nouveau MongoStore({
          base de données : settings.db
})
}));

Pour différentes versions, modifiez-le simplement en conséquence.

4.Résumé

Après avoir étudié ce livre, je connais certaines fonctionnalités de nodejs et des sites Web actifs en langues étrangères. La fréquence de mise à jour de certaines sections populaires de Node augmente également la difficulté d'apprentissage. Ce livre peut être considéré comme une introduction. Ensuite, je prévois d'apprendre le cadre back-end des voiles à travers des combats réels. Les problèmes rencontrés au cours de l'étude sont également enregistrés dans des cahiers.

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn