node js អនុវត្តន៍ spreadsheet api with filter

យើងបានសិក្សាអំពីការទាញទិន្ន័យចេញពី spreadsheet ជា api ជាមួយ node js ហើយយើងបានសិក្សាអំពីធ្វើការ api ពី node js រួចហើយ។ ឥឡូវនេះយើងមកសិក្សាធ្វើ api ជាមួយ spreadsheet ដោយប្រើជាមួយ filter

const express = require("express");
const { google } = require("googleapis");
const { sheets } = require("googleapis/build/src/apis/sheets");
const app = express()

//Variable spreadsheet 
const spreadsheetId = '1QkXam1eVH-KmNC55AAHkEfwZ_hfXZqQvikmFXbe5t2s';
const range = 'mySheet' //Name of sheets

//Home page
app.get('/', (req, res) => {
    res.send("<h1>SpreadSheet API</h1>")
})
//Create function 
var myArr = []
async function test() {
    // create auther
    const auth = new google.auth.GoogleAuth({
        keyFile: 'mySheetApi.json',
        scopes: 'https://www.googleapis.com/auth/spreadsheets'
    })
    // create client by getClient
    const client = await auth.getClient();
    const sheet = google.sheets({ version: "v4", auth: client })

    //get value spreadsheet
    await sheet.spreadsheets.values.get({
        spreadsheetId,
        range
    }, (error, d) => {
        let hd = d.data.values.shift()
        let allData = d.data.values
        const jsonArr = allData.map(r =>{
            const obj = {}
            hd.map((d,i)=>{
                obj[d] = r[i]
            })
            return obj
        })

        myArr = jsonArr
    })
}
test()

app.get('/api/get',(req, res) => {
    res.send(myArr)
})
app.get('/api/get/:id',(req,res)=>{
    const newArr = myArr;
    let myFilt = parseInt(req.params.id)
    const myF = newArr.filter(d => d.ID === `${myFilt}`)
    
    if(myF == ""){
        res.status(404).send("<h1>Page not found!</h1>")
        return
    }
    res.send(myF)
})

const port = process.env.PORT || 2000;
app.listen(port, () => {
    console.log(`Server running port ${port}`);
})

Post a Comment

0 Comments