【问题标题】:In nodejs how to get the path in the callback of fs.readfile在nodejs中如何在fs.readfile的回调中获取路径
【发布时间】:2023-03-18 10:18:01
【问题描述】:

我正在使用 chokidar watcher 来监视目录。我想要 fs.readFile 回调中的路径名。如果我这样写代码:

watcher.on('add', path => {
            var log = console.log.bind(console);
            log(`File ${path} has been added`);
            fs.readFile(path,'utf-8', function(err, data,path) {
log(`File ${path} has been read`);
......
......

以下是输出:

文件test1.txt已添加

已读取未定义的文件

如何在 fs.readfile 回调中获取路径的值

【问题讨论】:

  • fs.readFile() 回调中删除path 参数,你应该没问题。

标签: node.js


【解决方案1】:

fs.readFile(path,'utf-8', callback..,这里的回调只包含两个参数,1-error , 2-data。错误和数据的值被传递给各自的参数。 (注意第一个始终用于错误,另一个用于数据)。

您正在向此回调添加第三个参数,该参数永远不会包含任何值,因此您会看到 undefined,因为 fs 模块从不填充除 errordata 之外的任何其他参数。所以,首先从回调参数中删除它,你的回调应该看起来像

 fs.readFile(path,'utf-8', function(err, data) {..

现在您应该会在控制台中看到打印的文件名。

此外,您始终可以使用nodejspath 模块和

path.basename('pathToFile')

将返回您指定为参数的路径中的文件名

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-19
    • 2017-02-15
    • 2014-01-05
    • 1970-01-01
    • 2018-09-01
    • 2020-10-31
    • 1970-01-01
    相关资源
    最近更新 更多