VS Code Mongoose 模式智能感知不起作用

问题描述 投票:0回答:2

在我的 Node.js 项目(使用 VS Code IDE)中,未显示 Mongoose 模式智能感知。我正在学习 Udemy Node.js 课程。在那里,课程讲师的 VS Code 展示了 Mongoose 模式智能感知。我的意思是,当他们输入“type”属性时,VS Code 会建议使用 Mongoose 模式的“type”属性。也适用于其他属性,如“必需”、“默认”、“最小”、“最大”等。

但是,在我的 VS Code 中,它没有显示猫鼬模式智能感知。

我不使用 TypeScript,它只是一个 Vanilla JS (Node.js) 项目。

我几乎一整天都在寻找解决方案。但无法解决我的问题。

有些人会这样说:

  1. npm i mongoose -g
    (对我不起作用)
  2. npm i @types/mongoose
    (这个 NPM 包已于 2 年前被弃用)
  3. 有人说,Mongoose schema intellisense 是 VS Code 默认设置,不需要做任何更改。 (我完全卸载[我的意思是干净卸载] VS Code 和 Node.js,然后再次重新安装。但是 Mongoose schema intellisense 仍然没有在我的 VS Code 中显示。)

我的 Node.js 版本是 v20.2.0。

我的 VS Code 版本是 1.78.2“用户”安装程序

我的 mongoose npm 软件包版本是 [电子邮件受保护]

我在 Windows 10 上运行

Udemy 教练使用的

  1. [电子邮件受保护]
  2. VS 代码版本“1.49.something”
  3. Node.JS 版本“14.11.0”
  4. 他正在 Mac OS 上运行
  5. 无扩展。他说他的 VS Code IDE 是默认设置。

我正在学习的 Udemy Node.js 课程是 Maximilian Schwarzmüller 的“NodeJS - 完整指南(MVC、REST API、GraphQL、Deno)” [https://www.udemy.com/course/nodejs-the-complete-指南/]

Udemy讲师视频截图如下。 该视频的链接是[https://www.udemy.com/course/nodejs-the-complete-guide/learn/lecture/11954140#content]。 视频截图的时间跨度是03:46。

这是我的问题的屏幕截图(在我的 VS Code 上):

这是我的代码:

 /**
 * models/Product.js (Product Model file)
 */

import mongoose from "mongoose";

const Schema = mongoose.Schema;

const productSchema = new Schema({
        title: {
            type: String,
            required: true,
        }
    });

const Product = mongoose.model('Product', productSchema);

export default Product;

正如一位 stackoverflow 助手 @starball 所要求的,我在下面提供了讲师的来源和我的“npm 列表”。

这里是 Udemy Instructor 的源代码 [https://github.com/HponeThitHtoo/ saving-mongoose] (@starball 对我之前的拼写错误感到抱歉。Udemy 讲师没有在 GitHub 上上传他的源代码。他只是在他的 Udemy 课程中提供了 zip 文件的链接”。因此,我将他的源代码上传到我的 GitHub 帐户。 )

这是我的 npm list @types/mongoose

node.js visual-studio-code mongoose mongoose-schema definitelytyped
2个回答
0
投票

您的讲师使用了

[email protected]
,这是在 Mongoose 开始在自己的包中发布自己的 TypeScript 类型定义之前的某个时间点,所以您应该
npm i -D '@types/mongoose@~5.2.0'
~
表示任何与
5.2
匹配的内容(
5.2
下的任何补丁版本)。你应该这样做的原因是因为绝对类型包的编写是为了匹配它们提供类型的 JS 包的主要版本和次要版本(source)。

当您使用 Mongoose 主要版本 7 并且您的讲师使用主要版本 5 时,您所尝试的方法不起作用,您不应该感到惊讶。在 semver 中,主要版本意味着重大更改。


0
投票

解决方案很简单,但很难找到。将其添加到您的架构上方

/**

  • @type {mongoose.SchemaDefinitionProperty} */
© www.soinside.com 2019 - 2024. All rights reserved.