masanos note

[Node.js] Storing API results in js

2023-02-05
icon

/api/index.mjs

axios (npm install axios) to create functions to retrieve API results.

import { createRequire } from 'module';
const require = createRequire(globalThis._importMeta_.url);
const axios = require("axios").default;

const BASE_URL = 'https://example.com/api/v1'
const api = axios.create({
  baseURL: BASE_URL,
  headers: {
    'X-API-KEY':'***'
  },
  responseType: 'json'
})

export async function fetchTest() {
  const res = await api.get('/test')
  return res.data.contents
}

/scripts/makeData.mjs

Writes the results of the API to a JS File.

import { createRequire } from 'module';
const require = createRequire(globalThis._importMeta_.url);
import * as api from '../api/index.mjs'
const fs = require("fs");

async function fetchTest(){
  const res = await api.fetchTest()
  const data = `export const TEST = ${JSON.stringify(res)}`

  fs.writeFile("./data/test.ts", data, (err) => {
    if (err) throw err;
    console.log('test api is success');
  })
}
fetchTest()

package.json

Prepare a command to execute in package.json.

{
  "scripts": {
    "update-data": "node scripts/makeData.mjs"
  }
}

command

When executing the program, move it like this.

$ npm run update-data
Related Notessupabase with Vue3 Vue3 with bootstrap-icons[vue3]Install bootstrap5[vue3] install[Nuxt3]The first thing I do when launching a nuxt3 project. (^3.5.2)[Nuxt3][Bootstrap]Use Bootstrap icons with Nuxt3.🔧[GA4][GTM]Configure GA4 in GTM🔧[Nuxt3]Using Google Tag manager with NUXT3🔧[GA4][BigQuery]Linking GA4 and BigQuery🔧When you want to scrape a SPA site, PhantomJsCloud is solution.🐛Error brew -v | update-reset🔧Use Google Spreadsheet as API with Nuxt3.🔧 Get json from a spreadsheet using GoogleSheetsAPI v4.🔧[Python]Install Python to Mac[Nuxt3]Install stable version of Nuxt 3.0.0. | npx nuxi init nuxt3-appMake Ranking with MySQLwatch & v-model | Vue3 (Nuxt3)window & document | Nuxt3Using custom domain, Hosting to GitHub Pages with Nuxt3GA4 with Nuxt3📝MySQL - Date Function - Tips Use Nuxt3 props🔧Use MicroCMS with Nuxt3🔧Using GoogleFont with Nuxt3📝Error - Deprecation Warning: $weight: Passing a number without unit % (100) is deprecated. - Bootstrap5 📝using sass with nuxt📝Firebase9 Google Authentication with Nuxt3.📝Set favicon in Nuxt3📝Use bootstrap5 with Nuxt3🐛Error Code: 1290. The MySQL server is running with the --secure-file-priv option so it cannot execute this statement[Nuxt3] How to separate source directoriesmicroCMS & GitHub Actions & Nuxt3Using highlight in Nuxt3.use package.json value🔧frontmatter-markdown-loader & highlight.js🔧Install Font Awesome on Nuxt2 via npm.Github pages with GitHub ActionsCannot find module '~/*/*.vue' or its corresponding type declarations.Vetur(2307)🐛Cannot find module. Consider using '--resolveJsonModule' to import module with '.json' extension.ts(2732)TypeScript Object.🔧Bootstrap5 with Nuxt2processmd with Nuxt2🔧[MySQL]Install MySQL Workbench🔧Convert Markdown to HTML. convert frontmatter to json🔧Install homebrew, nvm, node to Mac🔧[MySQL]Record of installing and starting mysql with homebrew.🎨 Display the photo full screen and overlay the header and footer on top.🔧Set git repository to created project.[Nuxt3] Make Header & Footer
A record of the development is left in a web note.
Masanos
I want to make the world I see happy. Little by little, I am preparing to start a business. Thank you for your support.
Buy Me A Coffee
Copyright© masanos All Rights Reserved.