El aprendizaje de esta semana se encuentra principalmente en la interacción de la base de datos de NodeJS, y utilizamos la plantilla Jade para hacer un sitio web verificado por el usuario juntos. Principalmente, encontré varios problemas.
1. La versión de MongoDB es demasiado baja
NPM ERR! No es compatible con su sistema operativo o arquitectura: [email protected]
0.9.9 Solo admite sistemas Linux, Darwin y FreeBSD, y la última versión admite victorias.
2. Después de que NodeJs realice la operación de inserción: el resultado no se puede leer
La copia del código es la siguiente:
app.post ('/firmar', function (req, res, next) {
// inserta el documento
app.users.insert (req.body.user, function (err, doc) {
if (err) return Next (err);
res.Redirect ('/login/' + doc [0] .Email);
});
});
La apariencia es que la redirección falló, y la situación real es que la inserción de la base de datos ha sido exitosa, pero el DOC está vacío, y mucho menos el valor de DOC [0] .Email. La razón es que las operaciones como Insert se realizan de forma asincrónica. Las operaciones asíncronas no devuelven sus resultados por defecto para determinar si se están ejecutando con éxito. Esta función debe implementarse agregando el tercer parámetro {safe: ture}, a saber, app.users.insert (req.body.user, {safe: ture}, function () {...}). De esta manera, el resultado se leerá con éxito.
3. Aparece la tienda indefinida de conexión conectada
La copia del código es la siguiente:
Mongostore = require ('Connect-Mongo')
app.use (express.session ({
secreto: settings.cookiesecret,
Tienda: New Mongostore ({
DB: settings.db
})
}));
El código fuente es el anterior. La razón se encuentra que el módulo Connect-Mongo se introduce de manera diferente en función de diferentes versiones de Express. También hay un recordatorio especial en su readme.md.
La copia del código es la siguiente:
Con expresión4:
var session = require ('expresión expresa');
var mongostore = require ('Connect-Mongo') (sesión);
app.use (session ({
secreto: settings.cookie_secret,
Tienda: New Mongostore ({
DB: settings.db,
})
}));
Con expresión <4:
var express = request ('express');
var mongostore = require ('Connect-Mongo') (express);
app.use (express.session ({
secreto: settings.cookie_secret,
Tienda: New Mongostore ({
DB: settings.db
})
}));
Para diferentes versiones, modifíquelas en consecuencia.
4. Resumen
Después de estudiar este libro, conozco algunas de las características de NodeJS y el sitio web activo de idiomas extranjeros. La frecuencia de las actualizaciones de algunas secciones populares en el nodo también ha aumentado la dificultad del aprendizaje, por lo que este libro puede considerarse introductorio. A continuación, planeamos aprender el marco de backend de las velas a través del combate práctico. Los problemas encontrados durante el estudio también se registran en el cuaderno.