Javascript 为什么我不能在猫鼬模型中传播对象?

Javascript 为什么我不能在猫鼬模型中传播对象?,javascript,node.js,mongodb,mongoose,mongoose-schema,Javascript,Node.js,Mongodb,Mongoose,Mongoose Schema,这可能是一个愚蠢的问题,但为什么我会在下面的代码片段中遇到意外的令牌错误?请记住,这是一个猫鼬模型 错误消息 猫鼬模型 扩展运算符用作数组中的参数 你可能想用这个来代替 const SpeciesSchema = new Schema({ name: { common: shared, scientific: shared, }, organism: Object.assign({}, shared, enum: ["Plant", "An

这可能是一个愚蠢的问题,但为什么我会在下面的代码片段中遇到意外的令牌错误?请记住,这是一个猫鼬模型

错误消息

猫鼬模型


扩展运算符用作数组中的参数

你可能想用这个来代替

const SpeciesSchema = new Schema({
    name: {
        common: shared,
        scientific: shared,
    },
    organism: Object.assign({}, shared, enum: ["Plant", "Animal", "Other"]},
    ...,
}

最后一个…,是您实际代码的一部分,还是只是一个示例?还有,意外标记是什么?不,不是。我添加省略号只是为了暗示代码的延续。此外,我还编辑了问题以包含错误消息。您的节点版本是否支持在对象中使用rest/spread运算符?@PatrickEvans确实支持,这就是为什么这是一个相当意外的结果。如果这是您的错误消息,我将再次检查您的节点版本。看起来是第一个正确支持它的版本。你写的应该是有效的。是的,Object.assign有效。然而,它相当冗长,这正是我开始时想要避免的。
const shared = {
    type: String,
    required: true,
}

const SpeciesSchema = new Schema({
    name: {
        common: shared,
        scientific: shared,
    },
    organism: {
        ...shared,
        enum: ["Plant", "Animal", "Other"],
    },
    ...,
}
const SpeciesSchema = new Schema({
    name: {
        common: shared,
        scientific: shared,
    },
    organism: Object.assign({}, shared, enum: ["Plant", "Animal", "Other"]},
    ...,
}