Я утверждаю, что узнаю о Nest js, и я запускаю базовое c "приложение задачи", но я начинаю использовать mon goose в своем проекте и показываю ошибку:
> Potential solutions:
- If TaskModel is a provider, is it part of the current AppModule?
- If TaskModel is exported from a separate @Module, is that module imported within AppModule?
@Module({
imports: [ /* the Module containing TaskModel */ ]
})
Я пробую разные способы ее решения, но я так noob на этом инструменте, так что разочарование не может найти, как решить эту ошибку .. Пожалуйста, помогите noob на этой основе
задач. service.ts
import { InjectModel } from "@nestjs/mongoose";
import { Injectable } from '@nestjs/common';
import { Task } from './interface/ITasks';
import { Model } from "mongoose";
@Injectable()
export class TasksService {
constructor(@InjectModel('Task') private taskModel: Model<Task>) { }
async getTasks() {
return await this.taskModel.find()
}
async getTask(id: string) {
return await this.taskModel.findById(id)
}
}
task.module.ts
import { TaskSchema } from './schema/task.schema';
import { MongooseModule } from '@nestjs/mongoose';
import { Module } from '@nestjs/common';
import { TasksController } from './tasks.controller';
import { TasksService } from './tasks.service';
@Module({
imports: [MongooseModule.forFeature([
{ name: 'Task', schema: TaskSchema }
], 'Tasks'),
],
controllers: [TasksController],
providers: [TasksService]
})
export class TasksModule { }
task.controller.ts
import { TasksService } from './tasks.service';
import { CreateTaskDto } from './DTO/create-task.dto';
import { Controller, Get, Post, Put, Delete, Body, Param } from '@nestjs/common';
import { Task } from './interface/ITasks';
@Controller('tasks')
export class TasksController {
constructor(private taskService: TasksService) { }
@Get() // Decorador
getTasks(): Promise<Task[]> {
return this.taskService.getTasks()
}
@Get(':id') // Decorador
getTask(@Param('id') id: string) {
return this.taskService.getTask(id)
}
@Post('/newTask')
postTask(@Body() task: CreateTaskDto): { title: string, description: string, done: boolean } {
console.log(task.title, task.description, task.done)
return task
}
@Put(':id')
updateTask(@Body() task: CreateTaskDto, @Param('id') id) {
console.log(task)
console.log(id)
let action = task
return action
}
@Delete(':taskId')
deleteTask(@Param('taskId') taskId): { status: string, id: string } {
let action = { status: "Deleted task", id: taskId }
console.log(action);
return action
}
}
task.schema.ts
import { Schema } from "mongoose";
export const TaskSchema = new Schema({
title: String,
decription: String,
done: Boolean
})