当我将云函数部署到 GCP 时(用 Node.js 编写(,如何查看文件系统环境以进行调试? 如果我想知道我的当前目录是什么或我的应用程序旁边存在哪些文件,该怎么办?
当我们部署云函数时,存在完整的 Node.js 环境。 我们可以在其中运行任意 Node.js 逻辑。 这包括日志记录信息,这些信息随后将显示在堆栈驱动程序日志中。 因此,我们可以记录当前工作目录路径以及当前目录中所有文件的列表。 我们可以将其用作诊断辅助。 下面是一个示例:
const fs = require('fs');
exports.helloWorld = (req, res) => {
console.log(`CWD: ${process.cwd()}`);
fs.readdir('.', function (err, files) {
if (err) {
return console.log('Unable to scan directory: ' + err);
}
files.forEach(function (file) {
console.log(file);
});
res.status(200).send('Done!');
});
};
您可以将此逻辑合并到您自己的应用中进行测试。
这是一个替代版本,它显示了所有文件和子目录的递归列表。
const fs = require('fs');
const walk = function(dir) {
var results = [];
var list = fs.readdirSync(dir);
list.forEach(function(file) {
file = dir + '/' + file;
var stat = fs.statSync(file);
if (stat && stat.isDirectory()) {
results = results.concat(walk(file));
} else {
results.push(file);
}
});
return results;
}
exports.helloWorld = (req, res) => {
let message = req.query.message || req.body.message || 'Hello World!';
console.log(`CWD: ${process.cwd()}`);
console.log(`Dir Listing: ${walk('.')}`);
res.status(200).send('Done!');
};
所有功劳都归功于上述算法到节点.js fs.readdir递归目录搜索。