直到使用Node.js将Airtable转化为API并将其转换为JSON数据
我正在使用GoogleSpreadSheet作为简易数据库,以代替生成JSON。但是,我发现在使用了GAS的表格和未使用GAS的表格之间变得混乱了起来。所以,我在想是否有任何替代方法可以免费使用,于是我决定尝试使用Airtable。
我也有点在意。
准备工作空间

首先,我们需要创建一个名为Test的工作区。我已经将工作表命名为”TestTable”。
获取API密钥

点击右上角的图标,进入“账户”页面,可以生成API密钥,生成并保存好。

获取Test表的ID
当您点击https://airtable.com/api/链接时,会自动创建一个专属于您工作区的精彩用户体验的文档。
进入图像的”Test”(您选择的任何工作区)。

https://airtable.com/あなたのテーブルID/api/docs#javascript/ratelimits
由于存在具有指定网址的表ID,将会保存”你的表ID”。
试着获取 Name 列的列名
目录结构(省略了node_modules等)
AirtableTest/
 generated/
 .env
 index.js
 package.json
可以使用”yarn init”等命令进行目录准备。
安装图书馆。
yarn add -D airtable dotenv
添加脚本并设置执行命令。
省略
  "scripts": {
    "start": "node -r dotenv/config index.js"
  }
省略
设定环境变量
AIRTABLE_API_KEY=あなたのAPIキー
获取表中Name列的列信息
const base = require('airtable').base('あなたのテーブルID');
const app = base("TestTable")
const airtableLists = app.select({view: "Grid view"})
airtableLists.firstPage((error, records) => {
  const names = records.map(record =>
    record.get("Name")
  )
  console.log(names);
});
试一试
yarn start
yarn run v1.22.10
$ node -r dotenv/config index.js
[ 'hoge', 'hage', 'fuga', undefined ]
✨  Done in 2.35s.
如果返回的值如上所示,那就可以了。
将其转化为JSON
我将试图将在此处获取的数据转化为JSON数据。
const fs = require('fs');
const base = require('airtable').base('あなたのテーブルID');
const app = base("TestTable");
const airtableLists = app.select({view: "Grid view"});
const createJSON = (airtableObj) => {
  const JSONdata = JSON.stringify(airtableObj, null, 2);
  fs.writeFileSync('generated/airtable.json', JSONdata);
}
const getAirtableObj = (airtableLists) => {
  return airtableLists.firstPage((error, records) => {
    const airtableObj = records.map(record => ({ Name: record.get("Name"), Notes: record.get("Notes") }));
    createJSON(airtableObj);
  });
}
getAirtableObj(airtableLists);
在这里生成/airtable.json,并通过根目录指定。
const createJSON = (airtableObj) => {
  const JSONdata = JSON.stringify(airtableObj, null, 2);
  fs.writeFileSync('generated/airtable.json', JSONdata);
}
请查看生成的JSON。
我们可以看到,原本是空白的栏位现在是空的,但仍然可以获取到如下内容。
[
  {
    "Name": "hoge",
    "Notes": "ほい"
  },
  {
    "Name": "hage",
    "Notes": "はい"
  },
  {
    "Name": "fuga",
    "Notes": "へい"
  },
  {}
]