Netlify FunctionsでSteinを動かすメモ

1 min read読了の目安(約1700字

Netlify Functions + Steinを動かすときにハマったメモです。

ソースコード

https://github.com/tmitsuoka0423/netlify-functions-stein-sample

ハマったところ

Cannot read property 'endsWith' of undefined

解決策

コンストラクタの引数をきちんと渡す。

原因

コンストラクタの引数がnullまたはundefinedになっている。

エラーメッセージ

undefined ERROR Uncaught Exception {
  "errorType":"TypeError",
  "errorMessage":"Cannot read property 'endsWith' of undefined",
  "stack":["TypeError: Cannot read property 'endsWith' of undefined",
  "    at new SteinStore (/var/task/src/node_modules/stein-js-client/index.js:7:25)",
  "    at Object.<anonymous> (/var/task/src/functions/read.js:2:15)",
  "    at Module._compile (internal/modules/cjs/loader.js:1015:30)",
  "    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1035:10)",
  "    at Module.load (internal/modules/cjs/loader.js:879:32)",
  "    at Function.Module._load (internal/modules/cjs/loader.js:724:14)",
  "    at Module.require (internal/modules/cjs/loader.js:903:19)",
  "    at require (internal/modules/cjs/helpers.js:74:18)",
  "    at Object.<anonymous> (/var/task/read.js:1:18)",
  "    at Module._compile (internal/modules/cjs/loader.js:1015:30)"]
  }

at new SteinStore (/var/task/src/node_modules/stein-js-client/index.js:7:25)とのことなので、
stein-js-client/index.jsの7行目を見てみる。

this.url = storageURL.endsWith("/") ? storageURL : storageURL + "/";

storageURLが空になっている可能性が高い。

Error: Unable to parse range: Sheet1

解決策

シート名を一致させる。

原因

プログラム上ではSheet1と指定しているが、シート名はシート1となっていた。

エラーメッセージ

Error: Unable to parse range: Sheet1
  at /var/task/src/node_modules/stein-js-client/src/read.js:35:19
  at processTicksAndRejections (internal/process/task_queues.js:97:5)