Heroku无法读取未定义的属性(阅读'length')

4bbkushb  于 2022-11-13  发布在  其他
关注(0)|答案(1)|浏览(173)

我的Nodejs应用程序在我的本地机器上运行良好,当我将其部署到heroku时,应用程序崩溃并出现错误:
无法读取未定义的属性(阅读'length')

function getRandom() {

    return new Promise((resolved,rejected)=>{

        // kick async work 
        fs.readdir(testFolder, (err, files) => {

            let random = files[Math.floor(Math.random() * files.length)]
            console.log("Random is " + random);
            resolved(random)
            //  rejected(new Error("Message "))
    
        });

    })

}

在我正在使用的package.json上

"engines": {
    "node": "16.17.0"
  },
qnzebej0

qnzebej01#

如果存在错误,变量files可能在readdir回调中未定义(该错误将位于err变量中);要知道错误是什么,您应该在readdir回调中添加一行,如下所示:

// kick async work 
        fs.readdir(testFolder, (err, files) => {
            if (err) {
               console.error(err)
               reject(err)
               return;
            }
            let random = files[Math.floor(Math.random() * files.length)]
            console.log("Random is " + random);
            resolved(random)
            //  rejected(new Error("Message "))
    
        });

我怀疑这个错误与Heroku上不存在的文件夹有关,但您应该运行该代码并检查日志以确定。

相关问题