node.js - NestJS 服务返回目录中的所有文件
问题描述
我正在使用 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';
摆脱错误。
解决方案
我相信该fs
模块使用命名导出而不是默认值,所以你需要做
import * as fs from 'fs';
代替
import fs from 'fs';
推荐阅读
- c - 此类变量的声明“int (*pfds)[2];” 他们叫什么
- google-apps-script - 如何将嵌套的 JSON 数据写入 Google 表格
- php - 计算需要时间来完成,但我想让它在后台处理并且用户可以访问另一个页面?
- java - 在 Little Endian CPU 架构上运行时,Java 如何处理 Endianess?
- ruby-on-rails - Ruby Review 类创建
- java - 在 C++ 中创建类的实例的两种方法有什么区别?
- angular - 路由更改时服务的角度更改组件状态
- string - 如何使用方案编程语言查找字符串中的字符数?
- python - 使用熊猫在多列中执行应用功能
- c++ - 错误:preLaunchTask 'C/C++:g++.exe build active file' 以退出代码 -1 终止