Membuat Aplikasi Mini Market dengan ExpressJS dan Mongoose Part 2 : Koneksi Database


Kembali lagi di tutorial Membuat Aplikasi Mini Market Dengan ExpressJS Dan Mongoose. Pada tutorial sebelumnya kita sudah menginstall ExpressJS, silahkan baca dlu klo belum. Kali ini kita akan membuat database mini market dan koneksinya. 


Yang pertama kita akan membuat fitur master barang. Jadi kita akan fokus kan dlu membuat CRUD master barang setelah itu kita lanjut ke fitur selanjutnya. Untuk membuat fitur barang kita tentukan dlu tabel/collection seperti dibawah ini.

Kategori
- id_kategori
- nama_kategori

Satuan
- id_satuan
- nama_satuan

Merk
- id_merk
- nama_merk

Barang
- id_barang
- kode_barang
- nama_barang
- singkatan
- id_merk
- id_kategori
- id_satuan
- harga_jual
Setelah kita tentukan tabel/collectionnya kita lanjut ke tahap berikutnya yaitu membuat database dulu di MongoDB, silahkan perhatikan perintah dibawah.

C:\Users\RSAM>cd ../../mongodb/bin

C:\mongodb\bin>mongo

> use mini_market

Selanjutnya kita akan mengoneksikannya dengan cara install mongoose dan mengedit app.js. lihat perintah dibawah.

C:\Users\RSAM>cd Documents/nodejs_tutorial/express/mini_market

C:\Users\RSAM\Documents\nodejs_tutorial\express\mini_market>npm install mongoose

app.js

var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');

var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');

var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');

app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

app.use('/', indexRouter);
app.use('/users', usersRouter);

//koneksi
var mongoose = require('mongoose');
mongoose.Promise = global.Promise;

mongoose.connect('mongodb://localhost/mini_market', { useNewUrlParser: true })
.then(() => console.log('berhasil terhubung'))
.catch((err) => console.error(err));

// catch 404 and forward to error handler
app.use(function(req, res, next) {
next(createError(404));
});

// error handler
app.use(function(err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};

// render the error page
res.status(err.status || 500);
res.render('error');
});

module.exports = app;

Tahap berikutnya adalah pembuatan models. silahkan kalian buat dlu folder models di direktori mini_market.

C:\Users\RSAM\Documents\nodejs_tutorial\express\mini_market>mkdir models

Pada folder models kita akan buat 4 buah files yaitu Barang.js dan Kategori.js, Satuan.js dan Merk.js. 4 file tersebut akan menciptakan sebuah scheme MongoDB yang bisa dipanggil pada modul lain.

Kategori.js

var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var kategoriSchema = new Schema(
{
nama: { type: String, require: true }
}
);

module.exports = mongoose.model('kategori', kategoriSchema);

Satuan.js

var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var satuanSchema = new Schema(
{
nama: { type: String, require: true }
}
);

module.exports = mongoose.model('satuan', satuanSchema);

Merk.js

var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var merkSchema = new Schema(
{
nama: { type: String, require: true }
}
);

module.exports = mongoose.model('merk', merkSchema);

Barang.js

var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var barangSchema = new Schema(
{
kode: { type: String, required: true },
nama: { type: String, required: true },
singkatan: { type: String, required: true },
id_kategori: { type: Schema.Types.ObjectId, ref: 'kategori', required: true },
id_satuan: { type: Schema.Types.ObjectId, ref: 'satuan', required: true },
id_merk: { type: Schema.Types.ObjectId, ref: 'merk', required: true }
harga_jual: { type: Number, required: true },
}
);

module.exports = mongoose.model('barang', barangSchema);

Pada tahap ini kita sudah menentukan tabel/collection dan membuat models fitur barang yang terdiri dari kategori, satuan, merk dan barang. pada tutorial selanjutnya kita akan membuat templating untuk aplikasi mini market ini.

Baca Selanjutnya - Membuat Aplikasi Mini Market Dengan ExpressJS Dan Mongoose Part 3 : Templating
LihatTutupKomentar