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
Baca Sebelumnya - CRUD Dengan ExpressJS & Mongoose Part 3 : Models Dan Controllers
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
Lihat script dibawah.
pegawai.js
kecamatan.js
Agar routes dapat dipanggil dan menampilkan sebuah tampilan web, Perlu kita daftarkan pada app.js.
Tambahkan beberapa baris code seperti berikut
Baris code diatas berfungsi untuk mengincludekan semua router yang kita butuhkan. Tambahkan kembali code berikut pada app.js
Ketiga baris code tersebut berfungsi untuk mendaftarkan sebuah router pada app.js. Kode lengkap app.js lihat dibawah ini.
Baca Selanjutnya - CRUD Dengan ExpressJS & Mongoose Part 5 : Templating
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 Selanjutnya - CRUD Dengan ExpressJS & Mongoose Part 5 : Templating
