NodeJS、Hapi、およびtypescriptを使用してマイクロサービスを作成しようとしています。 はでしたが、自分のサービスを作成して、私が望むディレクトリ構造を使用してインポートすることはできません。その構造は基本的には次のとおりです。TypeCriptモデルをインポートできません。typeof型と参照エラーでプロパティが終了しません。
/server.ts
/tsconfig.json
/packages.json
/Services/
/CarService.ts
/BoatService.ts
/Models
/Car.ts
/Boat.ts
/Tests
/Bundle
私のビジネスロジックからモデルを分離しようとしています。私のサービスの一つは、次のようになります。
module Services {
export class CarService {
saveCar(data: any): boolean {
return false;
}
}
}
だけでなく、このように見えた:
class CarService {
saveCar(data: any): boolean {
return false;
}
}
export {CarService}
私は私のserver.ts
import CarService = Services.CarService;
let _carService = new CarService();
にこのサービスをインポートしようとしているが、それはしてきました私が第2版の第2版のためにこのように見えたのは
import * as _carService from './Services/CarService';
と私はこのようなservcieを使用しようとしていた。
server.route({
method: 'POST',
path: '/Cars/',
handler: function (request:any, reply) {
_carService.saveCar(request.payload); // the error is here
//_carService["saveCar"](request);
reply("we did it!");
}
});
第1の方法は私にこのエラーを与えていた。
Property 'saveCar' does not exist on type 'typeof CarService'.
第2の方法は、視覚コードにコンパイルしますが、私はこのエラーを与えています。
ReferenceError: CarService is not defined
私のTSconfig:
{
"compilerOptions": {
"module": "commonjs",
"moduleResolution": "node",
"outDir": "bundle",
"target": "es5",
"noImplicitAny": false,
"sourceMap": true,
"declaration": true
},
"filesGlob": [
"./**/*/.ts"
]
}
明らかに私のモジュールは正しくコンパイルされていません。エラーがtsconfigモジュール解決戦略または出力ディレクトリに関連しているかどうかはわかりません。私はあまりにもその設定を手抜きしました。私は、モジュール解決戦略が最初に/src/
フォルダにあることをドキュメントを読むことから知っていますが、ある時点で私はrootDirs' array in my tsconfig.json that pointed to my
/Models/and
/Services/`というディレクトリを持っていました。
私はぐふ、すべての組み合わせを試していたそう確信していました。ありがとう。 – dckuehn