javascript - 为什么函数返回未定义?
问题描述
我想访问 timestamp.log 文件并获取与索引名称对应的最后一个时间戳。
例如:如果我将 logIndex =index-7.11.1-frontend1-endpoint-2021.02.24
作为参数传递给它,fetchIndexTimeStamp
它应该返回与此 logIndex 对应的最后一个时间戳,即第三个最后一行时间戳 ( 2021-02-24T00:24:43.659Z
)
timestamp.log 如下所示:
index-7.11.1-frontend2-endpoint-2021.02.24::2021-02-24T00:24:31.187Z
index-7.10.1-backend2-recommendation-2021.02.24::2021-02-24T00:23:36.793Z
index-7.10.1-backend1-config-mgmt-2021.02.24::2021-02-24T00:23:41.523Z
index-7.10.1-backend1-recommendation-2021.02.24::2021-02-24T00:23:41.523Z
index-7.10.1-backend2-migration-2021.02.24::2021-02-24T00:23:36.793Z
index-7.10.1-backend1-migration-2021.02.24::2021-02-24T00:23:41.523Z
index-7.11.1-frontend1-endpoint-2021.02.24::2021-02-24T00:24:29.659Z
index-7.11.1-frontend2-merlinui-2021.02.24::2021-02-24T00:03:08.988Z
index-7.11.1-frontend1-merlinui-2021.02.24::2021-02-24T00:02:07.705Z
index-7.11.1-frontend2-endpoint-2021.02.24::2021-02-24T00:24:31.187Z
index-7.10.1-backend2-recommendation-2021.02.24::2021-02-24T00:23:36.793Z
index-7.10.1-backend1-recommendation-2021.02.24::2021-02-24T00:23:41.523Z
index-7.10.1-backend1-config-mgmt-2021.02.24::2021-02-24T00:23:41.523Z
index-7.10.1-backend2-migration-2021.02.24::2021-02-24T00:23:36.793Z
index-7.10.1-backend1-migration-2021.02.24::2021-02-24T00:23:41.523Z
index-7.11.1-frontend1-endpoint-2021.02.24::2021-02-24T00:24:43.659Z
index-7.11.1-frontend1-merlinui-2021.02.24::2021-02-24T00:02:07.705Z
index-7.11.1-frontend2-merlinui-2021.02.24::2021-02-24T00:03:08.988Z
这是我获取时间戳的函数,但它返回未定义:
const fs = require('fs')
module.exports = {
fetchIndexTimeStamp: (logIndex) => {
const dir = './logs/timestamp.log'
fs.access(`${dir}`, fs.R_OK, (err) => {
if(err) {
console.log(err);
if(err.code === 'ENOENT') {
// file does not exists
const writableStream = fs.createWriteStream(`${dir}`);
console.log('File does not exists !!')
const message = `${logIndex}::default`
writableStream.write(message + '\r\n')
}
}
else {
// file exists
let ans = undefined;
const file = fs.readFileSync(`${dir}`, 'utf-8').split(/\r?\n/);
file.forEach((line) => {
let temp = line.split("::");
if(temp[0].toString() === logIndex) {
ans = temp[1];
}
})
// console.log('data ', ans); // this is printing correct output
return ans;
}
})
}
}
const tmpstp = fetchIndexTimeStamp(logIndex); // gives undefined ??
请让我知道为什么函数返回未定义?
解决方案
推荐阅读
- c++ - 如何修复分段错误:C++ 中的 11?
- ios - 未能在设备上构建 swift ios 应用程序
- java - 以特定格式乘、除数字
- python - model.predict(),model.predict_classes() 和 model.predict_on_batch() 似乎没有产生任何结果
- javascript - 如何在较大的项目出现在顶部后停止按钮移动
- .net - 如何为适用于多种环境 [ Dev、QA、Prod ] 的控制台应用程序配置 CI?
- python - 使图像中的对象彼此最接近
- python - pytorch中cuda张量的位操作
- c# - 使用命名范围进行数据验证
- u-sql - stddev 为 U-SQL 中的 2 个相同数据集给出不同的结果