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

时间:2018-05-02 12:55:32

标签: node.js

我正在使用chokidar观察者来观看目录。我想在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回调中获取path的值

1 个答案:

答案 0 :(得分:1)

fs.readFile(path,'utf-8', callback..,此处回调只包含两个参数1-error , 2-data。错误和数据的值将传递给相应的参数。 (首先注意一个是错误而另一个是数据)。

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

data

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

此外,您始终可以使用 fs.readFile(path,'utf-8', function(err, data) {.. 的{​​{1}}模块和

path

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