繁体   English   中英

尝试使用 Typescript 从 MongoDB 检索数据

[英]Trying to retrieve Data from MongoDB using Typescript

背景:我对 TypeScript 没有太多经验,因为我们不会在工作中使用它,我正在尝试构建一个小作品集供个人曝光。

所以首先是我的代码:

import { request, Request, Response } from 'express';
import { Neighborhood as NeighborhoodType } from '../interfaces/neighborhood.interface';
import Neighborhood from '../models/neighborhood';

const fetchNeighborhoods = async (request: Request, response: Response): Promise<void> => {
  try {
    const neighborhoods: NeighborhoodType[] = await Neighborhood.paginate();
    response.status(200).send(neighborhoods);
  } catch (error) {
    throw error;
  }
};

我正在尝试从数据库中获取社区,并且收到错误Type 'PaginateResult<Neighborhood>' is missing the following properties from type 'Neighborhood[]': length, pop, push, concat, and 26 more. 在这条线上const neighborhoods: NeighborhoodType[] = await Neighborhood.paginate();

如果我删除NeighborhoodType[]那么该方法将正常工作。 邻域接口实际上是一个带有字符串的 object。

export interface Neighborhood extends Document {
  name: string,
}

这是我的代码的问题还是依赖项之一的问题?

对于遇到此问题的任何人:

问题源于尝试设置返回类型。 由于 Mongoose 将始终返回一个文档、文档数组或空数组(除非使用onFail() ),因此可以推断返回类型,因此无需添加NeighborhoodType[]

如果我没记错的话,PaginateResult 类型本质上是 Array 的类型,并且期望 Neighborhood 类型具有它不会拥有的所有数组方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM