L'apprentissage de cette semaine est principalement sur l'interaction de la base de données de NodeJS, et nous utilisons le modèle de jade pour fabriquer un site Web vérifié par l'utilisateur. Surtout, j'ai rencontré plusieurs problèmes.
1. La version MongoDB est trop faible
NPM ERR! Pas compatible avec votre système d'exploitation ou votre architecture: [email protected]
0.9.9 ne prend en charge que les systèmes Linux, Darwin et FreeBSD, et la dernière version prend en charge les victoires.
2. Une fois que Nodejs effectue un opération d'insertion: le résultat ne peut pas être lu
La copie de code est la suivante:
app.post ('/ inscription', fonction (req, res, suivant) {
// insérer le document
app.users.insert (req.body.user, fonction (err, doc) {
if (err) return suivant (err);
res.redirect ('/ login /' + doc [0] .email);
});
});
L'apparence est que la redirection a échoué, et la situation réelle est que l'insertion de la base de données a été réussie mais le DOC est vide, sans parler de la valeur de Doc [0] .Email. La raison en est que des opérations comme l'insert sont effectuées de manière asynchrone. Les opérations asynchrones ne renvoient pas leurs résultats par défaut pour déterminer s'ils s'exécutent avec succès. Cette fonction doit être implémentée en ajoutant le troisième paramètre {Safe: Ture}, à savoir app.users.insert (req.body.user, {Safe: Ture}, function () {...}). De cette façon, le résultat sera lu avec succès.
3. Le magasin non défini connect-Connect apparaît
La copie de code est la suivante:
Mongostore = require ('connect-mongo')
app.use (express.session ({
Secret: Settings.cookiesecret,
Store: New Mongostore ({
DB: Settings.DB
})
}));
Le code source est comme ci-dessus. La raison est constatée que le module Connect-Mongo est introduit différemment en fonction de différentes versions d'Express. Il y a aussi un rappel spécial dans son Readme.md.
La copie de code est la suivante:
Avec expression4:
var session = require ('express-session');
var mongostore = require ('connect-mongo') (session);
app.use (session ({
Secret: Settings.cookie_secret,
Store: New Mongostore ({
db: settings.db,
})
}));
Avec l'expression <4:
var express = require ('express');
var mongostore = require ('connect-mongo') (express);
app.use (express.session ({
Secret: Settings.cookie_secret,
Store: New Mongostore ({
DB: Settings.DB
})
}));
Pour différentes versions, veuillez les modifier en conséquence.
4. Résumé
Après avoir étudié ce livre, je connais certaines des caractéristiques de Nodejs et du site Web de langue étrangère active. La fréquence des mises à jour de certaines sections populaires dans le nœud a également augmenté la difficulté d'apprentissage, de sorte que ce livre peut être considéré comme un introduction. Ensuite, nous prévoyons d'apprendre le cadre backend Sails à travers un combat pratique. Les problèmes rencontrés lors de l'étude sont également enregistrés dans le cahier.