我的应用程序出现此错误
运行时错误:
TSError:无法编译类型脚本:src/控制器/注解。ts:134:20 -错误TS 2339:类型“Document〈unknown,{},{ createdAt:”上不存在属性“remove”本地日期;更新时间:本地日期;} & {标题:字符串;文本?:弦|未定义; }〉&忽略〈{创建时间:本地日期;更新时间:本地日期;} & { ...; } & { ...;},从不〉'。
134等待注解.删除()
突出显示的错误:
任何属性“remove "在类型”Document〈unknown,{},{ createdAt:本地日期;更新时间:本地日期;} & {标题:字符串;文本?:弦|未定义; }〉&忽略〈{创建时间:本地日期;更新时间:本地日期;} & { ...; } & { ...;},从不〉'. ts(2339)
控制器/注解
import NoteModel from "../models/note";
import {RequestHandler} from 'express';
import createHttpErrors from "http-errors";
import mongoose from "mongoose";
export const deleteNote: RequestHandler = async (req, res, next) => {
const noteId = req.params.noteId;
try{
if(!mongoose.isValidObjectId(noteId)){
throw createHttpErrors(400, "invalid Note ID")
}
const note = await NoteModel.findById(noteId).exec();
if(!note){
throw createHttpErrors(404, "Note not found")
}
await note.remove();
res.sendStatus(204)
}
catch(error){
next(error)
}
}
型号/注解
import { InferSchemaType, model, Schema } from "mongoose";
const noteSchema = new Schema({
title: { type: String, required: true},
text: { type: String},
}, {timestamps: true})
type Note = InferSchemaType<typeof noteSchema>
export default model<Note>("Note",noteSchema)
路由器/注解
import express from 'express';
import * as NoteController from '../controllers/notes'
const router = express.Router()
router.delete('/:noteId', NoteController.deleteNote);
1条答案
按热度按时间hgtggwj01#
我猜您正在遵循相同的教程。
如果要保留:
则使用
remove()不能再使用(源代码:How do I remove documents using Node.js Mongoose?)