#javascript #node.js #mongoose
#javascript #node.js #мангуст
Вопрос:
я хочу создать один вводимый текст и сохранить результат в разделенных полях на MongoDB. я получил ошибку «Схема не является конструктором», как это исправить
const mongoose = require('mongoose');
const profileSchema = mongoose.Schema;
const Scheme = new profileSchema({
fullName:String,
age:Number,
address:String
});
dataSchema = new Scheme({
data : {
type: Scheme,
required: true
}
});
var Profile = mongoose.model('Profile', dataSchema);
var profile = new Profile();
var error = profile.validateSync();
assert.ok(error.errors['data']);
Комментарии:
1.
Scheme != Schema
— У вас опечатка. Такжеtype: Schema
(с исправлением) не имеет смысла. Вам, вероятно, следует еще немного прочитать документацию mongoose , прежде чем продолжить.2. я хочу создать вложенный объект с объявлением Sceme в новой profileSchema и dataSchema в новой схеме.
3. Вместо этого сделайте
const profileSchema = new Schema({ ... })
, а затемconst dataSchema = new Schema({ data: profileSchema })
вот так.Schema
Это реальная вещь с конструктором. Опять же, ссылка, которую я только что дал вам, объясняет «Схему» в мельчайших подробностях. Либо встроенные, либо ссылочные объекты и массивы. Ваша ошибка говорит мне, что вам нужно потратить больше времени на чтение документации и пробуя примеры, прежде чем внедрять свой собственный код. Когда вы поймете это лучше, тогда вы сможете с легкостью делать то, что хотите.4. Конечно,
...
здесь это просто заполнитель для фактического определения полей, которые вы хотите там ввести. Не просто вводите...
5. спасибо, я просто новичок в такого рода материалах