簡體   English   中英

如何使用nodejs修復這個foreach函數錯誤

[英]How to fix this foreach function error with nodejs

我有一個 nodejs 腳本,允許我在 Firestore 上插入包含在 json 文件中的數據,但執行后我有一個未找到函數的錯誤。 我該如何解決這種情況? 謝謝這是我所有的代碼:

var admin = require("firebase-admin");

var serviceAccount = require("./service_key.json");

admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  databaseURL: "https://xxxxxxxxx.firebaseio.com"
});

const firestore = admin.firestore();
const path = require("path");
const fs = require("fs");
const directoryPath = path.join(__dirname, "files");

fs.readdir(directoryPath, function(err, files) {
  if (err) {
    return console.log("Unable to scan directory: " + err);
  }

  files.forEach(function(file) {
    var lastDotIndex = file.lastIndexOf(".");

    var menu = require("./files/" + file);

    menu.forEach(function(obj) {
      firestore
        .collection(file.substring(0, lastDotIndex))
        .doc(obj.itemID)
        .set(obj)
        .then(function(docRef) {
          console.log("Document written");
        })
        .catch(function(error) {
          console.error("Error adding document: ", error);
        });
    });
  });
});

我有這個錯誤要發回:

/Users/nana/Documents/SCRIPT/uploader.js:25
    menu.forEach(function(obj) {
         ^

TypeError: menu.forEach is not a function
    at /Users/nana/Documents/SCRIPT/uploader.js:25:10
    at Array.forEach (<anonymous>)
    at /Users/nana/Documents/SCRIPT/uploader.js:20:9
    at FSReqCallback.oncomplete (node:fs:188:23)

據我所知, menu不是數組。 您只requiring './files/'路徑內的文件。

試試console.log(typeof menu)看看終端說的 menu 是什么。 但對我來說,它看起來不像一個數組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM