我有一个nestjs项目,在网站的根目录有一个上传文件夹,那里有不同扩展名的文件.我应该如何处理它们?

==同步,由Elderman更正==@elder_man ==同步,由Elderman更正==@elder_man

当我这样做时,我得到一个错误:

{ "statusCode": 404, "message": "ENOENT: no such file or directory, stat 'G:\myproject\uploads\index.html'" }

在App.Module中,我按照Nest文档中的方式执行了所有操作:

import { ServeStaticModule } from '@nestjs/serve-static';
import { join } from 'path';


@Module({
   imports: [
     ServeStaticModule.forRoot({
       rootPath: join(__dirname, '../../../', 'uploads'),
     }),
     UsersModule

电源

import { NestFactory } from '@nestjs/core';
import { AppModule } from './App/app.module';
import { ConfigService } from '@nestjs/config';
import { ValidationPipe } from '@nestjs/common';


async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  const configService = app.get(ConfigService);
  const port = configService.get('PORT'); 
  app.enableCors();
  app.useGlobalPipes(new ValidationPipe()); 
  await app.listen(port);
}
bootstrap();

推荐答案

因为它已经在uploads文件夹中查找了,所以它可能会try 在uploads中查找uploads,如果你明白我的意思的话.

因此,您可以将其显式地指定为URL前缀,如下所示

@Module({
  imports: [
    ServeStaticModule.forRoot({
      rootPath: join(__dirname, '..', '..', 'uploads'),
      // Tell NestJS to serve the files under ~/uploads/
      serveRoot: '/uploads/',
    }),
  ],
})
export class AppModule {}

更新

我运行了您在注释中提到的存储库,并添加了一个控制台日志(log).看起来它试图访问dist文件夹下的uploads.这可能是你的另一个问题.

debug

更新 2

我设法让它在您在 comments 中添加的存储库上运行,方法有两点:

  • 将第三个..添加到dist文件夹中
  • 更重要的是:移动代码以在工厂方法中运行

就像这样:

    ServeStaticModule.forRootAsync({
      useFactory: () => {
        const uploadsPath = join(__dirname, '..', '..', '..', 'uploads');
        return [
          {
            rootPath: uploadsPath,
            serveRoot: '/uploads/',
          },
        ];
      },
    }),

结果:

Success

Javascript相关问答推荐

d3可排序表标题行中有收件箱--如何使收件箱不触发排序?

响应式JS DataTable中的Bootstrap 5弹出程序无法正常工作

如何在ReactJS中修复这种不需要的按钮行为?

即使设置了父级的最大高度,固定位置的分区内容也不会滚动?

为什么子组件没有在reaction中渲染?

如何使用CSS和JavaScript创建粘性、凝聚力的形状到形状(容器)变形?

在具有焦点和上下文的d3多线图表中,如何将上下文的刷新限制在特定日期?

用相器进行向内碰撞检测

如何修复内容安全策略指令脚本-SRC自身错误?

在React中获取数据后,如何避免不必要的组件闪现1秒?

Snowflake JavaScript存储过程返回成功,尽管预期失败

react—router v6:路由没有路径

使用Nuxt Apollo在Piniastore 中获取产品细节

Node.js错误: node 不可单击或不是元素

React Refs不与高阶组件(HOC)中的动态生成组件一起工作

如何在独立的Angular 应用程序中添加Lucide-Angel?

与在编剧中具有动态价值的定位器交互

无法使用npm install安装react-dom、react和next

使用可配置项目创建网格

Chart.js Hover线条在鼠标离开时不会消失