Синтаксис Node.js, mongoose (name: string, schema)
Прописываю файл User.js
const {Schema, model, Types} = require('mongoose')
const schema = new Schema({
email: {type: String, required: true, unique: true},
password: {type: String, required: true},
links: [{ type: Types.ObjectID, ref: 'Link' }]
})
module.exports = model(name: 'User', schema)
Проблема такая - в WebStorm не работает подсказка синтаксиса, когда прописываю строчку:
module.exports = model(name: 'User', schema)
Здесь name: должно становиться серым не редактируемым словом и должно выглядеть вот так:

Однако ничего не происходит. И если прописываю name: самостоятельно, то он выделяется как функция, и затем выдаётся следующая ошибка.
[0] C:\Users\...\WebstormProjects\...\models\User.js:9
[0] module.exports = model(name: 'User', schema)
[0] ^^^^
[0]
[0] SyntaxError: missing ) after argument list
[0] at wrapSafe (internal/modules/cjs/loader.js:979:16)
[0] at Module._compile (internal/modules/cjs/loader.js:1027:27)
[0] at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
[0] at Module.load (internal/modules/cjs/loader.js:928:32)
[0] at Function.Module._load (internal/modules/cjs/loader.js:769:14)
[0] at Module.require (internal/modules/cjs/loader.js:952:19)
[0] at require (internal/modules/cjs/helpers.js:88:18)
[0] at Object.<anonymous> (C:\Users\...\WebstormProjects\...\routes\auth.routes.js:6:14)
[0] at Module._compile (internal/modules/cjs/loader.js:1063:30)
[0] at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
[0] at Module.load (internal/modules/cjs/loader.js:928:32)
[0] at Function.Module._load (internal/modules/cjs/loader.js:769:14)
[0] at Module.require (internal/modules/cjs/loader.js:952:19)
[0] at require (internal/modules/cjs/helpers.js:88:18)
[0] at Object.<anonymous> (C:\Users\...\WebstormProjects\...\app.js:7:22)
[0] at Module._compile (internal/modules/cjs/loader.js:1063:30)
[0] [nodemon] app crashed - waiting for file changes before starting...
Пакет mongoose переустанавливал, однако model всё равно работает также. Облазил интернет в поиске решения, но так и не нашёл способа. Я совсем новичок в Js и поэтому мгу чего-то не знать. Прошу отнестись с пониманием)
Пробовал прописывать последнюю строчку так:
module.exports = model('User', schema);
Да, тогда Web Storm не помечает файл, как файл с корявым синтаксисом, но выдаётся ошибка:
[1] > react-scripts start
[1]
[0] C:\Users\...\WebstormProjects\...\node_modules\mongoose\lib\schema.js:475
[0] throw new TypeError('Invalid value for schema path `' + fullPath +
[0] ^
[0]
[0] TypeError: Invalid value for schema path `type`, got value "undefined"
[0] at Schema.add (C:\Users\...\WebstormProjects\...\node_modules\mongoose\lib\schema.js:475:13)
[0] at new Schema (C:\Users\...\WebstormProjects\...\node_modules\mongoose\lib\schema.js:129:10)
[0] at Schema.interpretAsType (C:\Users\...\WebstormProjects\...\node_modules\mongoose\lib\schema.js:955:29)
[0] at Schema.path (C:\Users\...\WebstormProjects\...\node_modules\mongoose\lib\schema.js:676:27)
[0] at Schema.add (C:\Users\...\WebstormProjects\...\node_modules\mongoose\lib\schema.js:498:12)
[0] at new Schema (C:\Users\...\WebstormProjects\...\node_modules\mongoose\lib\schema.js:129:10)
[0] at Object.<anonymous> (C:\Users\...\WebstormProjects\...\models\User.js:3:16)
[0] at Module._compile (internal/modules/cjs/loader.js:1063:30)
[0] at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
[0] at Module.load (internal/modules/cjs/loader.js:928:32)
[0] at Function.Module._load (internal/modules/cjs/loader.js:769:14)
[0] at Module.require (internal/modules/cjs/loader.js:952:19)
[0] at require (internal/modules/cjs/helpers.js:88:18)
[0] at Object.<anonymous> (C:\Users\...\WebstormProjects\...\routes\auth.routes.js:6:14)
[0] at Module._compile (internal/modules/cjs/loader.js:1063:30)
[0] at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
[0] [nodemon] app crashed - waiting for file changes before starting...
Ответы (1 шт):
Попробуйте написать вот так убрав из импорта Types:
links: [{ type: Schema.Types.ObjectId, ref: 'Link' }]
