Post

Restful API with Node.js and MongoDB part 2

Salam hangat sahabat sharehubid. Artikel kali ini akan melanjutkan proses pembuatan Rest Api menggunakan Nodejs dan MongoDB.

Baiklah, langsung saja, masih pada file "note.controller.js" dan lanjutkan dengan menambahkan code berikut :

// Update a note identified by the noteId in the request
exports.update = (req, res) => {
    // Validate Request
    if(!req.body.content) {
        return res.status(400).send({
            message: "Note content can not be empty"
        });
    }

    // Find note and update it with the request body
    Note.findByIdAndUpdate(req.params.noteId, {
        title: req.body.title || "Untitled Note",
        content: req.body.content
    }, {new: true})
    .then(note => {
        if(!note) {
            return res.status(404).send({
                message: "Note not found with id " + req.params.noteId
            });
        }
        res.send(note);
    }).catch(err => {
        if(err.kind === 'ObjectId') {
            return res.status(404).send({
                message: "Note not found with id " + req.params.noteId
            });                
        }
        return res.status(500).send({
            message: "Error updating note with id " + req.params.noteId
        });
    });
};
// Delete a note with the specified noteId in the request
exports.delete = (req, res) => {
    Note.findByIdAndRemove(req.params.noteId)
    .then(note => {
        if(!note) {
            return res.status(404).send({
                message: "Note not found with id " + req.params.noteId
            });
        }
        res.send({message: "Note deleted successfully!"});
    }).catch(err => {
        if(err.kind === 'ObjectId' || err.name === 'NotFound') {
            return res.status(404).send({
                message: "Note not found with id " + req.params.noteId
            });                
        }
        return res.status(500).send({
            message: "Could not delete note with id " + req.params.noteId
        });
    });
};

Bila sudah, jangan lupa untuk requiring file route yang merujuk ke controller yang telah kita buat pada "server.js". Tambahkan code berikut sebelum "app.listen()" seperti ini :

// ........

// Require Notes routes
require('./app/routes/note.routes.js')(app);

// ........

Bila sudah, kita dapat melakukan endpoint test terhadap api yang telah kita buat. Pada artikel ini akan dicontohkan menggunakan Postman.
Jalankan node server kemudian buka aplikasi Postman, dan cobalah untuk inserting data menggunakan api create yang telah kita buat tadi seperti ini :

Voila, data berhasil diinputkan ke DB. Selanjutnya kalian dapat mencoba untuk melakukan endpoint test terhadap api lainnya yang telah kita buat tadi.

Baiklah sekian artikel kali ini, semoga bermanfaat. Terimakasih.