带有打字稿的猫鼬,来自猫鼬的错误“连接”

Posted

技术标签:

【中文标题】带有打字稿的猫鼬,来自猫鼬的错误“连接”【英文标题】:Mongoose with typescript, error 'connect' from mongoose 【发布时间】:2020-06-21 12:09:20 【问题描述】:

当我启动服务器时,出现这个错误:

this.mongo.connect('mongodb://localhost:27017/tsnode', ^ 类型错误:无法读取未定义的属性“连接”

import express from 'express';
import mongoose from 'mongoose';
import cors from 'cors';

class App 
  public express: express.Application;

  public mongo: mongoose.Mongoose;

  constructor() 
    this.express = express();
    this.database();
    this.middlewares();
    this.routes();
  

  private middlewares(): void 
    this.express.use(express.json());
    this.express.use(cors());
  

  private database(): void 
    this.mongo.connect('mongodb://localhost:27017/tsnode', 
      useUnifiedTopology: true,
    );
  

  private routes(): void 
    this.express.get('/', (req, res) => res.send('Hello World!'));
  


export default new App().express;

【问题讨论】:

【参考方案1】:

你还没有启动 mongo 变量,你应该在构造函数中做。 喜欢:

  constructor() 
    this.express = express();
    this.mongo= mongoose;  // initialize mongo variable
    this.database();
    this.middlewares();
    this.routes();
  

【讨论】:

以上是关于带有打字稿的猫鼬,来自猫鼬的错误“连接”的主要内容,如果未能解决你的问题,请参考以下文章

使用带有打字稿的猫鼬创建自定义验证时出错

如何在打字稿中的猫鼬userschema.methods中使用“this”

带有猫鼬的打字稿:无法读取未定义的属性“CasterConstructor”

根据打字稿中的请求参数设置猫鼬的查询过滤器

预中间件中的猫鼬打字稿不存在

将模糊搜索与猫鼬一起使用时出现打字稿错误