Pembelajaran minggu ini terutama pada interaksi database NodeJS, dan kami menggunakan template Jade untuk membuat situs web yang diverifikasi pengguna bersama. Terutama, saya mengalami beberapa masalah.
1. Versi MongoDB terlalu rendah
NPM Err! Tidak kompatibel dengan sistem operasi atau arsitektur Anda: [email protected]
0.9.9 hanya mendukung sistem Linux, Darwin, dan FreebsD, dan versi terbaru mendukung kemenangan.
2. Setelah nodej melakukan operasi insert: hasilnya tidak dapat dibaca
Salinan kode adalah sebagai berikut:
app.post ('/penandatanganan', fungsi (req, res, next) {
// Masukkan dokumen
app.users.insert (req.body.user, function (err, doc) {
if (err) return next (err);
res.redirect ('/login/' + doc [0] .email);
});
});
Penampilannya adalah bahwa pengalihan gagal, dan situasi sebenarnya adalah bahwa penyisipan database telah berhasil tetapi DOC kosong, apalagi nilai Doc [0] .Mail. Alasannya adalah bahwa operasi seperti insert dilakukan secara tidak sinkron. Operasi asinkron tidak mengembalikan hasilnya secara default untuk menentukan apakah mereka berjalan dengan sukses. Fungsi ini perlu diimplementasikan dengan menambahkan parameter ketiga {safe: ture}, yaitu app.users.insert (req.body.user, {safe: ture}, function () {...}). Dengan cara ini, hasilnya akan berhasil dibaca.
3. Connect-Connect Store yang Tidak Ditentukan Muncul
Salinan kode adalah sebagai berikut:
Mongostore = membutuhkan ('connect-mongo')
app.use (Express.Session ({
Rahasia: Pengaturan.Cookiesecret,
Store: New Mongostore ({
DB: Settings.db
})
}));
Kode sumber seperti di atas. Alasannya ditemukan bahwa modul Connect-Mongo diperkenalkan secara berbeda berdasarkan versi Express yang berbeda. Ada juga pengingat khusus di readme.md -nya.
Salinan kode adalah sebagai berikut:
Dengan ekspresi4:
var session = membutuhkan ('ekspres sesi');
var mongostore = membutuhkan ('connect-mongo') (sesi);
app.use (session ({
Rahasia: pengaturan.cookie_secret,
Store: New Mongostore ({
DB: settings.db,
})
}));
Dengan ekspresi <4:
var express = membutuhkan ('express');
var mongostore = membutuhkan ('connect-mongo') (ekspres);
app.use (Express.Session ({
Rahasia: pengaturan.cookie_secret,
Store: New Mongostore ({
DB: Settings.db
})
}));
Untuk versi yang berbeda, harap modifikasi sesuai dengan itu.
4. Ringkasan
Setelah mempelajari buku ini, saya tahu beberapa karakteristik nodej dan situs web bahasa asing yang aktif. Frekuensi pembaruan beberapa bagian populer di Node juga telah meningkatkan kesulitan belajar, sehingga buku ini dapat dianggap sebagai pengantar. Selanjutnya, kami berencana untuk mempelajari kerangka kerja backend layar melalui pertempuran praktis. Masalah yang dihadapi selama penelitian juga dicatat dalam buku catatan.