【发布时间】:2019-02-11 23:01:56
【问题描述】:
我有一个奇怪的错误。我正在使用 firebase 的云功能进行一些数据处理。在函数中,我需要 (a) 将 CSV 写入磁盘上的 tmp/ 文件夹,(b) 将此文件上传到谷歌云存储。
我正在使用 fs.writeFile 写入磁盘。这工作正常——数据被正确写入 tmp 文件夹。但是,如果没有立即解决,整个函数就会崩溃。因此,如果函数中有下一步(例如等待上传完成谷歌云存储),函数就会崩溃。
我已经能够使用以下简单版本复制错误:
async.waterfall([
function (callback) {
fs.writeFile("tmp/testfile.txt", "hello world", function(err) {
callback(null);
});
},
function (callback) {
setTimeout(function(){
callback(null)
}, 10000);
}
], function(err){console.log("done!"})
任何关于可能出错的想法都将非常感激!
【问题讨论】:
-
“整个函数崩溃”是什么意思?如果您在日志中收到错误消息,请编辑您的问题以更具体地了解您所观察到的内容。
-
在控制台中,我收到以下错误:执行耗时 1687 毫秒,完成状态:'crash' 我还应该提到我目前正在使用 firebase 的 functons:shell 命令测试该功能,我也有尝试使用 try catch 来捕获此错误,但这不起作用:(
-
您应该使用 os.tmpdir() 来获取您的函数可写的目录:nodejs.org/api/os.html#os_os_tmpdir
-
完全成功!你摇滚,道格!
标签: node.js firebase google-cloud-platform google-cloud-functions fs