Сервер Vercel Now не работает с таблицами Google - PullRequest
0 голосов
/ 29 мая 2020

Я пытаюсь создать простой express сервер, который добавляет некоторые данные в таблицу Google, когда что-то запрашивается по ссылке. Все работает локально, но сейчас запрос работает, но не добавляет данные в do c.

Индекс. js

const express = require("express");
const app = express();
const cors = require("cors");
const bodyParser = require("body-parser");
const base64 = require("base-64");

app.use(cors());
const { GoogleSpreadsheet } = require("google-spreadsheet");
const creds = require("./client_secret.json");
const doc = new GoogleSpreadsheet(
  "11...."
);

async function accessSpreadsheet(depts, email) {
  await doc.useServiceAccountAuth({
    client_email: creds.client_email,
    private_key: creds.private_key,
  });

  await doc.loadInfo(); // loads document properties and worksheets
  console.log(doc.title);
  console.log(depts);

  const sheet = doc.sheetsByIndex[1];
  const rows = await sheet.getRows(); // or use doc.sheetsById[id]
  console.log(sheet.title);
  console.log(sheet.rowCount);

  await sheet.loadCells("B1:C500");
  depts.forEach((value) => {
    var a1 = sheet.getCell(value.id + 1, 2);
    a1.value += ", " + email;
  });
  sheet.saveUpdatedCells();
}

app.post(
  "/form/:email/",
  (req, res, next) => {
    const email = base64.decode(req.params.email);
    const depts = JSON.parse(req.query.array);
    accessSpreadsheet(depts, email);
    next();
  },
  (req, res) => {
    res.send(req.params + "success!");
  }
);

app.post("/form/", (req, res) => {
  res.send("please send post req");
});

app.get("/form/", (req, res) => {
  res.send("please send post req");
});

app.get("/", (req, res) => {
  res.send("e-Lite reg api");
});
app.listen(3000, () => console.log(`Example app listening on port ${3000}!`));


сейчас. json

{
  "version": 2,
  "builds": [{ "src": "index.js", "use": "@now/node-server" }],
  "routes": [
    {
      "src": "/",
      "dest": "/index.js",
      "methods": ["GET"]
    },
     {
       "src": "/form.*",
       "dest": "/index.js",
      "methods": ["GET", "POST"]
     }
  ]
}

Я не думаю, что это проблема с кодом. Все работает локально. Zeit не сообщает об ошибках в API.

...