X
Showing posts with label express js. Show all posts
Showing posts with label express js. Show all posts

Sunday, October 9, 2022

Cara Membuat CRUD dengan MongoDb menggunakan Express JS


Pada postingan sebelumnya telah di bahas Cara Penginstalan dan Konfigurasi MongoDB maka melanjutkan pada postingan tersebut kita akan membahas mengenai Membuat CRUD dengan MongoDb menggunakan Express JS.

Sebelum memulai membuat CRUD dengan MongoDB ini pastikan anda telah menginstall :

1. Node Js

2. Compas atau Robo 3t (untuk meremote database MongoDB)

Selanjutnya pastikan anda sudah tahu cara pembuatan aplikasi menggunakan Express Js dengan membaca postingan Mengenal Apa itu Express JS Hingga Cara Penginstalan atau anda bisa melihat contoh penggunaan express + mysql Cara Membuat CRUD Database MySql dengan Node js.

Selanjutnya mari kita bekerja dengan Express Js dan MongoDB

Cara Membuat CRUD dengan MongoDb menggunakan Express JS

1. Membuat project baru dengan menggunakan perintah npm init kemudian npm install, untuk file utama sendiri gunakan index.js.
 
2. Edit file index.js (jika belum ada silahkan buat) seperti code di bawah :
var express = require('express');

var app = express();
var PORT= 8080;


app.listen(PORT, async (error) =>{
    if(!error){
        console.log("server running || port : "+PORT);
    }else {
        console.log("Error occurred, server can't start", error);
    }
});

3. Buka package.json dan tambahkan kode di bawah pada bagian scripts

"start" : "nodemon index.js"
Pastikan anda tela h menginstall nodemon, jika belum silahkan ketikkan npm i -g nodemon ini untuk kebutuhan running nantinya.

4. Install package express npm i express, kemudian install mongodb dengan npm i mongodb 
5. Selanjutnya tambahkan require dan connect ke mongodb


const {MongoClient} = require('mongodb');

var url_db = "mongodb://localhost:27017";
var db;

MongoClient.connect(url_db, function (err, client) {
    if (err){
        console.log(err);      
    }else{
        console.log("connect mongodb");
        db = client.db("nama_db");
    }
   
});
 

6. Select table

 
var data = await db.collection("nama_table").find().toArray()
 

 Ini akan menghasilkan data array. Jika ingin melakukan where, silahkan isi bagian find, contohnya find({username:"coding"}).


7. Insert Data ke table 


 dataSave = {
                "username":"test",
                "password":"pass",
            }
 
await db.collection("nama_table").insert(dataSave)
 


8. Update Data pada table

 where = {
                "id":1
            }
 
 data = {
                "username":"test",
                "password":"pass",
            }
var up = await db.collection('nama_table').update(where, {$set :data})
 

9. Delete data

 
var a = await db.collection("nama_table").remove();
 

atau 

 
await db.collection("nama_table").deleteOne({_id:ObjectId("4d513345cc9374271b02ec6c")})
 






Friday, October 7, 2022

Cara Menghubungkan Openfire (XMPP) dengan Node js

 Openfire merupakan sebuah aplikasi yang berada di bawah licensi Apache, bersifat open source. Aplikasi ini bekerja di ruang lingkup internet sebagai chat server / instant messaging server. 

Openfire menyediakan layanan chat server menggunakan protokol extensible messaging and presence protocol (XMPP) atau sering disebut Jabber.

Pengguna aplikasi ini dapat mendapatkan ataupun mengirim pesan secara Real Time Collaboration (RTC).

Sebelum memulai menghubungkan Openfire dengan Node js pastikan anda memiliki tools berikut :

1.  Openfire 

2. Spark (Software Chat)

3. Node Js


Berikut langkah-langkah Cara Menghubungkan Openfire (XMPP) dengan Node js

 1. Buka "http://localhost:9090/" di browser kesayangan kalian kemudian login

 


2. Pada halaman selanjutnya klik menu server ->  Server Settings -> HTTPBinding  kemudian enable pada dan setting port seperti pada gambar 


3. Masuk ke menu User/Groups -> Create New User untuk membuat user baru yang akan di test nantinya

Dalam hal ini kita sudah memiliki akun test dan akun admin, nantinya akun test akan di coba untuk mengirim pesan ke akun admin.

4. Buat project baru node js dengan nama "chat" kemudian buat file index.js dan jadikan sebagai file utama aplikasi yang dibuat 

5. Edit file index.js sebagai berikut, dan jangan lupa mengganti code-serverhost dengan kode yang ada di dashboard openfire bagian server -> server manager -> Environment -> Server Host Name (FQDN) 

const express = require('express');
var bodyParser = require('body-parser');
const { client, xml } = require("@xmpp/client");
const debug = require("@xmpp/debug");

const app = express();
const PORT = 3000;

const xmpp = client({
    service: "ws://127.0.0.1:7070/ws/",
    domain: "127.0.0.1",
    resource: "",
    username: "test",
    password: "123123",
  });
 
  debug(xmpp, true);
 
  xmpp.on("error", (err) => {
    console.error(err);
  });
 
  xmpp.on("offline", () => {
    console.log("offline");
  });
 
  xmpp.on("stanza", async (stanza) => {
    console.log("terhubung")
    if (stanza.is("message")) {
      await xmpp.send(xml("presence", { type: "unavailable" }));
    //await xmpp.stop();
    }
  });
  xmpp.on("online", async (address) => {
    // Makes itself available
    await xmpp.send(xml("presence"));
 
    // Sends a chat message to itself
    const message = xml(
      "message",
      { type: "chat", to: address },
      xml("body", {}, "hello world"),
    );
    await xmpp.send(message);
  });
 
  xmpp.start().catch(console.error);

app.get('/send', async (req, res)=>{
    const message = xml(
        "message",
        { type: "chat", to: "admin@code-serverhost" },
        xml("body", {}, "Hai"),
          );
      await xmpp.send(message);
    res.send("ok")
})

app.listen(PORT, async (error) =>{
    if(!error){
        console.log("server running || port : "+PORT);
    }else {
        console.log("Error occurred, server can't start", error);
    }
});

 

Kode yang perlu di perhatikan ada pada 

const xmpp = client({
    service: "ws://127.0.0.1:7070/ws/",
    domain: "127.0.0.1",
    resource: "",
    username: "test",
    password: "123123",
  });
 
  debug(xmpp, true);
 
  xmpp.on("error", (err) => {
    console.error(err);
  });
 
  xmpp.on("offline", () => {
    console.log("offline");
  });
 
  xmpp.on("stanza", async (stanza) => {
    console.log("terhubung")
    if (stanza.is("message")) {
      await xmpp.send(xml("presence", { type: "unavailable" }));
    //await xmpp.stop();
    }
  });
  xmpp.on("online", async (address) => {
    // Makes itself available
    await xmpp.send(xml("presence"));
 
    // Sends a chat message to itself
    const message = xml(
      "message",
      { type: "chat", to: address },
      xml("body", {}, "hello world"),
    );
    await xmpp.send(message);
  });

Kode ini berfungsi untuk menghubungkan aplikasi dengan jabber, sekaligus mendapatkan respon apakah telah terhubung atau tidak. 

Untuk service bagian 

const xmpp = client({
    service: "ws://127.0.0.1:7070/ws/",
    domain: "127.0.0.1",
    resource: "",
    username: "test",
    password: "123123",
  });

 Silahkan sesuaikan dengan akses ke jabber atau openfire kalian.

Kemudian untuk melakukan pengetesan pengiriman pesan terdapat pada kode bagian :

  app.get('/send', async (req, res)=>{
      const message = xml(
          "message",
          { type: "chat", to: "admin@code-serverhost" },
          xml("body", {}, "Hai"),
            );
        await xmpp.send(message);
      res.send("ok")
  })

 Ketika url yang di akses "http://localhost:3000/send" aplikasi akan otomatis mengirim pesan ke admin@localhost.

Pengiriman pesan ini dapat di modif sesuai kebutuhan entah menggunakan POST atau yang liannya.

6. Jalankan aplikasi dengan mengetikkan perintah "npm start" jika terdapat module yang belum terinstall silahkan install terlebih dahulu misalnya "npm i express", "npm i body-parse", "npm i @xampp/client", "npm i @xampp/debug".
 

7. Buka aplikasi SPARK dan login sebagai admin untuk nantinya melihat pesan yang terkirim dari test.



8. Buka url "http://localhost:3000/send" di browser, jika berhasil pesan akan otomatis terkirim ke admin