ดึงรายชื่อเซิร์ฟเวอร์เกมส์ [MTA] Multi Theft Auto: San Andreas ด้วย [Nodejs]

 


Multi Theft Auto: San Andreas เป็นม็อดสำหรับผู้เล่นหลายคนของ Grand Theft Auto ที่สามรถสร้างม็อด สวมบทบาท เผ่าพันธุ์ เดธแมตช์ ซอมบี้ และอีกมากมาย


แต่เรื่องหานี้ผมไม่ได้มาแนะนำเกมส์แต่เราจะมาแอบดึงข้อมูลจากเว็บ Game-State กันมาเริ่มการเลย

  1. สิ่งแรกเลยคือการติดตั้ง Nodejs กันก่อนเลย [แต่ผมไม่สอนติดตั้งน๊ะครับ]
    Download Nodejs : https://nodejs.org/en/download/
  2. สร้าง Folder สำหรับโปรเจคมาซัก 1 Folder เสร็จแล้ว  ของผมของสร้างว่า nodejs1 แล้วกันน๊ะครับ
  3. เข้าไป Folder ที่เราสร้างขึ้นมาแล้วทำการเปิด terminal ขึ้นมาทำการ run ทำสั่ง `npm init` เพื่อเริ่มต้นใช้งาน และช่วยให้เราสร้าง และใส่รายละเอียดเกี่ยวกับโปรเจคของเรา (package.json)
  4. package ที่เราจะใช้มีดังนี้  express, parse5, xmlserializer, xmldom, request
  5. ทำการ install package ก่อนเลย `npm install express xpath xmldom request --save`
  6. สร้าง File app.js เริ่มเขียนโค๊ดดังนี้ก่อนเลย
    app.js
    const express = require('express');
    const app = express();
    const port = process.env.PORT || 3000;
    
    app.get('/', function (req, res) {
        res.send("Welcome")
    });
    app.listen(port, () => { console.log(`listening on ${port}`); });
    module.exports = app;
    
    เสร็จแล้วลองรันการดูก่อนเลย ด้วย `node app.js` ก็จะได้ดังรูป
  7. ต่อเรามาทำการลองใช้ package request กัน
    
    
    const express = require('express');
    const request = require('request');
    const app = express();
    const port = process.env.PORT || 3000;
    
    app.get('/', function (req, res) {
        //? url : https://www.game-state.com/index.php?game=mta&location=TH สำหรับ setver thai
        const location = "TH"
        const url = `https://www.game-state.com/index.php?game=mta&location=${location}`;
        request(url, function (error, response, html) {
            if (!error && response.statusCode == 200) {
                res.send(html)
            }
        });
    });
    app.listen(port, () => { console.log(`listening on ${port}`); });
    module.exports = app;
    
    สิ่งที่ได้

  8. จากรูปเราได้ทำการดึงโค๊ด html จาก Game-State แล้ว ต่อไปเราจะแปลง html ให้เป็น api เพิ่มนำไปใช้งาน
  9. โดนใช้ xmldom สร้าง Document ขึ้นมา `var doc = new dom().parseFromString(html);`
  10. แล้วใช้ xpath  ทำการ select ที่เราต้องการได้เลย

ตัวอย่าง | Demo : https://server-mta-sa-nodejs.herokuapp.com

0 ความคิดเห็น

Earn money online

รวมเทคหาเงินออนไลย์ - หารวยได้เสริม

Is the Designer Facing Extinction?