web-dev-qa-db-ja.com

「require」を使用してJSONをNestJSコントローラーにインポートする方法

コントローラの応答としてjsonファイルを返そうとしていますが、jsonのコンテンツを取得できません。

import { Controller, Get, Res, HttpStatus, Query } from '@nestjs/common';
import { Response } from 'express';

import * as MOCKED_RESPONSE_TS from './data/payment-method.data'; // this ts file is imported fine
const MOCKED_RESPONSE = require('./data/payment-method-mock'); // this json file is not found

@Controller('commons')
export class CommonController {

@Get('/payment-method')
  getPaymentMoethod(@Res() res: Response): any {
    res.status(HttpStatus.OK).send(MOCKED_RESPONSE);
  }

}

実際、ログは次を返します:Error: Cannot find module './data/payment-method'およびアプリがコンパイルされない

私はこれをExpressで(TypeScriptを使用しても)実行し、正常に動作します。

jsonを読み取るためにプロジェクトを設定する必要があるかどうかはわかりません(私はネストの初心者です)。jsonコンテンツを含むconstをエクスポートするTypeScriptファイルを作成し、それを正常に呼び出しました

最初に、それが正しく呼び出されていることを確認してください。

何か反応はありますか?そうでない場合、メソッド名はgetPaymentMoethodのようにつづられているので再確認してください。getPaymentMethodである必要があります。

第二に、私はメソッドの外で要求し、それを定数に設定することをお勧めします。

最後にJSON.stringify()でラップして、応答をjson文字列化オブジェクトに変換してみてください

0
BRose