O aprendizado desta semana está principalmente na interação do banco de dados do NodeJS e usamos o modelo Jade para criar um site verificado pelo usuário juntos. Principalmente, encontrei vários problemas.
1. A versão de MongoDB é muito baixa
npm err! Não é compatível com seu sistema operacional ou arquitetura: [email protected]
0.9.9 suporta apenas os sistemas Linux, Darwin e FreeBSD, e a versão mais recente suporta vitórias.
2. Após o NodeJS executar a operação de inserção: o resultado não pode ser lido
A cópia do código é a seguinte:
App.Post ('/Signup', função (req, res, próximo) {
// Insira o documento
App.users.insert (req.body.user, function (err, doc) {
se (err) retornar a seguir (err);
res.redirect ('/login/' + doc [0] .Email);
});
});
A aparência é que o redirecionamento falhou e a situação real é que a inserção do banco de dados foi bem -sucedida, mas o documento está vazio, muito menos o valor do documento [0]. O motivo é que operações como o Insert são realizadas de forma assíncrona. As operações assíncronas não retornam seus resultados por padrão para determinar se estão sendo executados com sucesso. Esta função precisa ser implementada adicionando o terceiro parâmetro {seguro: ture}, nomeadamente app.users.insert (req.body.user, {savure: ture}, function () {...}). Dessa forma, o resultado será lido com sucesso.
3. A loja indefinida Connect-Connect aparece
A cópia do código é a seguinte:
MongoStore = requer ('Connect-Mongo')
App.Use (Express.Session ({
Segredo: Settings.cookieSecret,
Loja: New MongoStore ({
DB: Settings.db
})
}));
O código -fonte está acima. Verificou-se que o módulo Connect-Mongo é introduzido de maneira diferente com base em diferentes versões do Express. Há também um lembrete especial em seu readme.md.
A cópia do código é a seguinte:
Com expressão4:
var session = requer ('express-session');
var monongostore = requer ('Connect-Mongo') (sessão);
App.use (sessão ({
Segredo: Settings.cookie_secret,
Loja: New MongoStore ({
DB: Settings.db,
})
}));
Com expressão <4:
var express = requer ('expresso');
var monongostore = requer ('Connect-Mongo') (expresso);
App.Use (Express.Session ({
Segredo: Settings.cookie_secret,
Loja: New MongoStore ({
DB: Settings.db
})
}));
Para versões diferentes, modifique -as de acordo.
4. Resumo
Depois de estudar este livro, conheço algumas das características do NodeJS e do site ativo de língua estrangeira. A frequência de atualizações de algumas seções populares no nó também aumentou a dificuldade de aprender, para que este livro possa ser considerado introdutório. Em seguida, planejamos aprender a estrutura de back -end de velas por meio de combate prático. Os problemas encontrados durante o estudo também são registrados no caderno.