,

ExpressJS Authentication for Beginners #4 | Validation and Schema Modeling with Mongoose

Posted by


Pada tutorial kali ini, kita akan membahas tentang validation dan schema model mongoose pada ExpressJS AUTH. Validation adalah proses pengecekan atau validasi data yang masuk sebelum disimpan ke database. Sedangkan schema model mongoose adalah sebuah aturan atau struktur data yang digunakan untuk menyimpan data ke dalam database MongoDB.

Langkah pertama yang harus dilakukan adalah menginstall beberapa package yang dibutuhkan, yaitu mongoose dan express-validator. Mongoose adalah package untuk memudahkan kita dalam berinteraksi dengan database MongoDB, sedangkan express-validator digunakan untuk melakukan validasi data di ExpressJS.

npm install mongoose express-validator

Setelah menginstall package tersebut, selanjutnya kita perlu membuat file models/User.js untuk menentukan schema model user. Berikut adalah contoh kode untuk schema model user menggunakan mongoose:

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

const userSchema = new Schema({
  username: {
    type: String,
    required: true
  },
  email: {
    type: String,
    required: true,
    unique: true
  },
  password: {
    type: String,
    required: true
  }
});

module.exports = mongoose.model('User', userSchema);

Pada kode di atas, kita mendefinisikan schema model user dengan tiga field yaitu username, email, dan password. Setiap field memiliki aturan tertentu, misalnya required: true artinya field tersebut wajib diisi. Selain itu, kita juga menentukan bahwa field email harus bersifat unique, artinya tidak boleh ada email yang sama di dalam database.

Selanjutnya, mari kita implementasikan validasi data di dalam file routes/auth.js. Berikut adalah contoh kode untuk melakukan validasi data pada saat registrasi user:

const { body, validationResult } = require('express-validator');

router.post('/register', [
  // melakukan validasi form
  body('username').notEmpty().isLength({ min: 3 }),
  body('email').isEmail(),
  body('password').isLength({ min: 6 })
], async (req, res) => {
  // handle error jika validasi gagal
  const errors = validationResult(req);
  if (!errors.isEmpty()) {
    return res.status(400).json({ errors: errors.array() });
  }

  try {
    // proses registrasi user
    // ...
  } catch (err) {
    console.error(err.message);
    res.status(500).send('Server Error');
  }
});

Pada kode di atas, kita menggunakan express-validator untuk melakukan validasi data pada form registrasi user. Setiap field memiliki aturan validasi tertentu, misalnya field username harus memiliki panjang minimal 3 karakter, field email harus merupakan email valid, dan field password harus memiliki panjang minimal 6 karakter.

Jika validasi gagal, maka akan dikembalikan response dengan status 400 dan daftar error yang terjadi. Jika validasi berhasil, maka proses registrasi user dapat dilanjutkan.

Dengan melakukan validasi data dan menggunakan schema model mongoose, kita dapat memastikan bahwa data yang masuk ke dalam database telah melewati proses validasi dan sesuai dengan aturan yang telah ditentukan. Ini akan membantu mengurangi risiko terjadinya kesalahan atau data yang tidak valid di dalam database.

Demikianlah tutorial tentang validation dan schema model mongoose pada ExpressJS AUTH. Semoga bermanfaat!

0 0 votes
Article Rating

Leave a Reply

3 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
@justkoding25
2 hours ago

Jika Terdapat error pada kondingannya bisa di tanyakan di discord

https://discord.com/invite/mvAy8c2k6v

@Devanaaaa
2 hours ago

keren abangkuu 😯😯

@teukuuuu
2 hours ago

Mantap bg 👍😁

3
0
Would love your thoughts, please comment.x
()
x