【发布时间】:2020-12-30 06:12:34
【问题描述】:
我正在使用 NestJS 中的一项服务来返回工作目录中的所有文件。 NestJS 是最新的,我的 Node 安装是 14.12.0。
import { Injectable } from '@nestjs/common';
import { ConfigService } from '@nestjs/config';
import { Observable, of } from 'rxjs';
import * as fs from 'fs';
@Injectable()
export class FileService {
constructor(
private Configuration:ConfigService // This service is just to set the working directory, where I have files
) { }
public GetFileListing(Directory?:string):Observable<string[]> {
const Results:Array<string> = new Array<string>();
// fs.readdir(Configuration.DataDirectory, (err, files) => {
fs.readdir('/c/users/xxx/datafiles/./', (err, files) => {
files.forEach( file => {
console.log(file);
Results.push(file);
});
});
return of(Results);
}
}
但是,该函数不会读取数据并返回文件列表,而是会产生错误:
[ExceptionHandler] Cannot read property 'readdir' of undefined
更改为硬设置路径不起作用,尽管我可以使用 VSCode 中的终端窗口并执行 ls /c/users/xxx/datafiles/./ 并获取我期望的文件列表。
更改为import * as fs from 'fs'; 可以消除错误。
【问题讨论】: