CRUD dengan ExpressJS & Mongoose Part 4 : Routing

CRUD dengan ExpressJS & Mongoose Part 4 : Routing

Pada pembahasan sebelumnya kita sudah membuat models dan controllers. Sekarang di tutorial kali ini kita akan membuat routes. Intinya Routes adalah penghubung antara request dan action. Ketika user me-request halaman aplikasi melalui URL, maka FrontController menampung request, dan memutuskan Controller dan action mana yang akan dipanggil berdasarkan URLpattern 


Agar kita bias mengakses sebuah url atau alamat kita wajib menciptakan routes. Routes disini akan memanggil 3 alamat web berikut yaitu :
  • Localhost:3000/pegawai
  • Localhost:3000/kecamatan
  • Localhost:3000

Untuk membuat routes harus disimpan pada folder routes yang sudah ada pada saat kita install ExpressJS. Sekarang kita buat tiga buah routes yaitu index.js, pegawai.js dan kecamatan.js.

C:\Users\RSAM>cd Documents/nodejs_tutorial/express/crud_pegawai/routes

Sebenarnya index.js sudah ada, kita tinggal edit saja

C:\Users\RSAM>cd Documents/nodejs_tutorial/express/crud_pegawai/routes/vim index.js

Lihat script dibawah.

var express = require('express');
var router = express.Router();

/* GET home page. */
router.get('/', function(req, res, next) {
res.render('index', { title: 'CRUD Pegawai' });
});

module.exports = router;

pegawai.js

var express = require('express');
var router = express.Router();
var mongoose = require('mongoose');
var pegawai = require('../controllers/PegawaiController.js');
var kecamatan = require('../models/Kecamatan.js');

router.get('/', function(req, res){
kecamatan.find({}, function(err, kec){
console.log(kec);
res.render('pegawai', { kecamatan: kec, title: 'CRUD Pegawai' });
}).select('_id nama');

});

router.post('/tambah', function(req, res){
pegawai.save(req, res);
});

module.exports = router;

kecamatan.js

var express = require('express');
var router = express.Router();
var mongoose = require('mongoose');
var kecamatan = require('../controllers/KecamatanController.js');

router.get('/', function(req, res, next){
res.render('kecamatan', { title: 'Kecamatan' });
});

router.post('/tambah', function(req, res){
kecamatan.save(req, res);
});

module.exports = router;

Agar routes dapat dipanggil dan menampilkan sebuah tampilan web, Perlu kita daftarkan pada app.js.

C:\Users\RSAM\Documents\nodejs_tutorial\express\crud_pegawai>vim app.js

Tambahkan beberapa baris code seperti berikut

var indexRouter = require('./routes/index');
var kecRouter = require('./routes/kecamatan');
var pegawaiRouter = require('./routes/pegawai');

Baris code diatas berfungsi untuk mengincludekan semua router yang kita butuhkan. Tambahkan kembali code berikut pada app.js


app.use('/', indexRouter);
app.use('/kecamatan', kecRouter);
app.use('/pegawai', pegawaiRouter);

Ketiga baris code tersebut berfungsi untuk mendaftarkan sebuah router pada app.js. Kode lengkap app.js lihat dibawah ini.

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 kecRouter = require('./routes/kecamatan');
var pegawaiRouter = require('./routes/pegawai');

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')));

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

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

console.log('mongodb terkoneksi');

app.use('/', indexRouter);
app.use('/kecamatan', kecRouter);
app.use('/pegawai', pegawaiRouter);

// 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;


Baca SelanjutnyaCRUD Dengan ExpressJS & Mongoose Part 5 : Templating
LihatTutupKomentar