យើងបានសិក្សាអំពីការទាញទិន្ន័យចេញពី 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}`); })


0 Comments