我正在使用 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/