質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
NestJS

NestJSは、Node.jsアプリケーションを構築するためのフレームワーク。Typescript製でAngularの影響を強く受けています。Expressで利用できるアーキテクチャをそのまま利用でき、保守が簡単なアプリケーションの構築が可能。開発を容易にするCLIも用意されています。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

Q&A

0回答

314閲覧

npm start時にエラーが起きる

maikeru12sd

総合スコア10

NestJS

NestJSは、Node.jsアプリケーションを構築するためのフレームワーク。Typescript製でAngularの影響を強く受けています。Expressで利用できるアーキテクチャをそのまま利用でき、保守が簡単なアプリケーションの構築が可能。開発を容易にするCLIも用意されています。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

0グッド

0クリップ

投稿2022/07/22 13:53

編集2022/07/22 14:01

前提

Nestjs TypeScriptでこちらの記事を参考にtodoアプリを作っています。

$ NODE_ENV=development npm start // 教材内では $ NODE_ENV=development yarn run start

を実行した際に以下のエラーメッセージが発生しました。

Error: Cannot find module './tasks.controller' Require stack:

実現したいこと

npm start が問題なく走るようにしたい

発生している問題・エラーメッセージ

tasks.controllerのモジュールが見つからないという内容のエラーが起きます。

Error: Cannot find module './tasks.controller' Require stack:

該当のソースコード

src/tasks/tasks.module.ts

1import { Module } from '@nestjs/common'; 2import { TasksController } from './tasks.controller'; 3import { TasksService } from './tasks.service'; 4 5@Module({ 6 controllers: [TasksController], 7 providers: [TasksService] 8}) 9 10export class TasksModule {} 11

src/tasks/tasks.controller.ts

1import { Body, Controller, Delete, Get, Param, ParseIntPipe, Patch, Post, UsePipes, ValidationPipe } from '@nestjs/common'; 2import { TaskPropertyDto } from './dto/task-property.dto'; 3import { TaskStatusPipe } from './pipe/task-status.pipe'; 4 5@Controller('tasks') 6export class TasksController { 7 8 @Get() 9 getTasks() { 10 return "getTasks Success!" 11 } 12 13 @Get('/:id') 14 getTaskById( 15 @Param('id', ParseIntPipe) id: number) { 16 return `getTaskById Success! Parameter [id:${id}]` 17 } 18 19 @Post() 20 @UsePipes(ValidationPipe) 21 createTask( 22 @Body() taskPropertyDto: TaskPropertyDto) { 23 const { title, description } = taskPropertyDto 24 return `createTask Success! Prameter [title:${title}, descritpion:${description}]` 25 } 26 27 @Delete('/:id') 28 deleteTask( 29 @Param('id', ParseIntPipe) id: number) { 30 return `deleteTask Success! Prameter [id:${id}]` 31 } 32 33 @Patch('/:id') 34 updateTask( 35 @Param('id', ParseIntPipe) id: number, 36 @Body('status',TaskStatusPipe) status: string ) { 37 return `updateTask Success! Prameter [id:${id}, status:${status}]` 38 } 39}

src/app.module.ts

1import { Module } from '@nestjs/common'; 2import { ConfigModule } from '@nestjs/config'; 3import { TypeOrmModule } from '@nestjs/typeorm'; 4import { TypeOrmConfigService } from 'config/typeorm-config.service'; 5import { TasksModule } from './tasks/tasks.module'; 6 7@Module({ 8 imports: [ 9 /** env読み込み 10 * 環境変数NODE_ENVの値によって読み込むファイルを切り替える。 11 * default.envは後続で呼ばれる。同じ変数がある場合は先に定義されているものが優先される。 12 */ 13 ConfigModule.forRoot({ 14 envFilePath: [`.env/${process.env.NODE_ENV}.env`,'.env/default.env'], 15 isGlobal: true, 16 }), 17 // TypeORMの設定を非同期取得に変更 18 TypeOrmModule.forRootAsync({ 19 imports: [ConfigModule], 20 useClass: TypeOrmConfigService, 21 }), 22 TasksModule, 23 ], 24}) 25export class AppModule {}

src/main.ts

1import { ConfigService } from '@nestjs/config'; 2import { NestFactory } from '@nestjs/core'; 3import { AppModule } from './app.module'; 4 5async function bootstrap() { 6 7 const app = await NestFactory.create(AppModule); 8 const configService = new ConfigService(); 9 10 const sync = configService.get('DB_SYNC'); 11 12 console.log(`TypeORM synchronize is [ ${sync}]`); 13 14 const port = configService.get('API_PORT'); 15 await app.listen(port); 16} 17 18bootstrap();

試したこと

  • pathの指定を変えた。

src/tasks/tasks.module.ts

1import { TasksController } from './tasks.controller'; 2 34 5import { TasksController } from 'src/tasks/tasks.controller'; 6
  • tasks.controllerファイルを一度削除して作り直した

  • node_moduleを削除して再度インストールし直した

  • 以下のコマンドを実行

export NODE_PATH=`npm root -g`

補足情報(FW/ツールのバージョンなど)

nestjs 9.0.0

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問