首页 > 解决方案 > 通过猫鼬中的功能处理许多领域的问题

问题描述

我想用函数在猫鼬中生成字段。因为有很多字段,但它们几乎相同,我想使用函数来创建它们以保持代码简短。

我写了一个函数,但存在 lints。

import { Schema } from 'mongoose'

function fieldGen(name, type="string", isRequired=true) {
   var field = {}
   field[name] = {
      type: type,
      required: isRequired
   }
   return {...field}
}

const testSchema = new Schema({
   fieldGen("firstname")
   fieldGen("lastname")
   fieldGen("location")
})

在 VS Code 中,问题显示如下

Identifier expected. ts(1003) [20, 12]

我希望第一个参数“名字”与函数中的名称匹配,并返回对象。

标签: javascriptmongoose

解决方案


您正在向testSchema对象添加值而不给它们命名。

此外,您将对象的属性传播field到一个新的对象字面量中。那什么也做不了。仅返回field对象将产生相同的结果。

我明白你在做什么。如果您以较小的步骤进行调试并仔细查看您正在处理的数据,我想您会自己弄清楚。


推荐阅读