Pada API yang kita develop ada 2 tipe read yang akan dilakukan, read semua data dan read by ID.
Untuk fungsi read all data (fungsi getAllTours), gunakan method find(). Lihat code berikut.
exports.getAllTours = async (req, res) => {
try{
const tours = await Tour.find();
res.status(200).json({
status: 'success',
results: tours.length ,
data: {
tours: tours
}
});
}catch (err){
res.status(400).json({
status: 'fail',
message: 'Not Found'
});
}
}
Untuk read by ID (fungsi getTours), gunakan method findById().
exports.getTours = async (req, res) => {
try{
const tour = await Tour.findById(req.params.id);
res.status(200).json({
status: 'success',
data: {
tour: tour
}
});
}catch(err){
res.status(400).json({
status: 'fail',
message: 'No Data Found'
});
}
}
Lakukan testing dengan Postman, dan lihat hasilnya di cloud Atlas. Berikut isi lengkap file tourController.js
const Tour = require('./../models/tourModel');
exports.getAllTours = async (req, res) => {
try{
const tours = await Tour.find();
res.status(200).json({
status: 'success',
results: tours.length ,
data: {
tours: tours
}
});
}catch (err){
res.status(400).json({
status: 'fail',
message: 'Not Found'
});
}
}
exports.getTours = async (req, res) => {
try{
const tour = await Tour.findById(req.params.id);
res.status(200).json({
status: 'success',
data: {
tour: tour
}
});
}catch(err){
res.status(400).json({
status: 'fail',
message: 'No Data Found'
});
}
}
exports.createTour = async (req, res) => {
try{
const newTour = await Tour.create(req.body);
res.status(201).json({
status: 'success',
data: {
tour: newTour
}
});
} catch (err){
res.status(400).json({
status: 'fail',
message: 'Error insert data'
});
}
}
exports.updateTour = (req, res)=> {
res.status(201).json({
status: 'success',
data: {
tour: 'data updated'
}
});
}
exports.deleteTour = (req, res)=> {
res.status(204).json({
status: 'success',
data: null
});
}
Note: karena menggunakan library mongoose, method yang digunakan adalah findById(). Bila menggunakan library native mongoDB, maka method yang digunakan adalah findOne({_id: req.params.id}).
Library mongoose memudahkan kita dalam develop program, namun tetap harus diperhatikan, perlu juga untuk mengetahui metoda dasar dari mongoDB.