Menambahkan Data ke DB

Jika kita melakukan submit di form registrasi hanya akan ada teks, karena kita memberikan respon tersebut ke client. Selanjutnya kita ingin menambahkan data tersebut ke DB

Kita ubah bagian router.post('/register', ..)

// memastikan user telah mengisikan semua datanya
if (req.body.email &&
    req.body.name &&
    req.body.favoriteBook &&
    req.body.password &&
    req.body.confirmPassword) {
}

// memunculkan error jika belum
    else {
      var err = new Error('All fields required.');
      err.status = 400;
      return next(err);
    }

Selanjutnya kita ingin memastikan password yang dimasukkan memiliki isi yang sama

// confirm that user typed same password twice
      if (req.body.password !== req.body.confirmPassword) {
        var err = new Error('Passwords do not match.');
        err.status = 400;
        return next(err);
      }

Lalu coba mengisi form tersebut di browser. Dan coba hingga memunculkan error

Selanjutnya kita membuat objek untuk menyimpannya ke database, karena MongoDB menyimpan data dalam bentuk objek

// create object with form input
      var userData = {
        email: req.body.email,
        name: req.body.name,
        favoriteBook: req.body.favoriteBook,
        password: req.body.password
      };

Selanjutnya kita membuat kode untuk menambahkan data tersebut ke database

// use schema's `create` method to insert document into Mongo
      User.create(userData, function (error, user) {
        if (error) {
          return next(error);
        } else {
          return res.redirect('/profile');
        }
      });

Lalu masukkan data di bagian registrasi. Dan melihat hasilnya di mongo shell.

Jika diperhatikan ada key __v, key tersebut digunakan untuk menampung perubahan terhadap data tersebut.

Dapat kita lihat juga, password disimpan dalam bentuk teks biasa, dan itu tidak baik, selanjutnya kita akan mencari tahu untuk mengubahnya agar tidak teks biasa. Oleh karena itu, kita hapus data tersebut, atau collection tersebut dengan db.users.drop()

results matching ""

    No results matching ""