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

标签 node.js

我正在使用 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`);
......
......

以下是输出:

File test1.txt has been added

File undefined has been read

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

最佳答案

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

您要向此回调添加第三个参数,该参数永远不会包含任何值,因此您会看到 undefined因为fs模块从不填充除 error 之外的任何其他参数和data 。因此,首先从回调参数中删除它,您的回调应该如下所示

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

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

此外,您始终可以使用path nodejs的模块和

path.basename('pathToFile')

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

关于node.js - 在nodejs中如何获取fs.readfile回调中的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50135200/

相关文章:

javascript - 无法使用 Node js 访问桌面应用程序中的窗口关闭功能

javascript - 测试应该传递流错误,失败则成功

javascript - nodejs循环async.parallel回调

json - 解析从 NODE.js 返回的 JSON

node.js - 每个 axios 请求在 React-Redux 应用程序中都会触发两次?

mysql - 异步和 Knex : how they work ?

facebook - 使用 facebook connect 在 Meteor 应用程序中登录回调

javascript - 无法获取路由 express /nodejs

node.js - 如何用yarn测试cli(全局链接)?

node.js - 如何为套接字传递 nginx 代理 url