用mongoose模块后 不能给任何对象添加自定义原型方法

发布于 2022-09-12 00:39:00 字数 515 浏览 17 评论 0

Object.prototype.addkey=function(key,value){//动态添加属性
  if(key){
       this[key]=value
   }
   return this
}

const mongoose = require('mongoose'); //引入mongoose数据库
var Q = require("q");
 mongoose.connect('mongodb://xxxx', {
  useNewUrlParser: true,
  useCreateIndex: true,
  useFindAndModify: false,
  user: 'xxx',
  pass: 'xxx',
});

console.log(({a:1}).addkey("ddd",2222)) 

控制台会报错:

the options [addkey] is not supported

这模块也太霸道了吧,给对象添加自定义原型方法应该是很常用的

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

陪你搞怪i 2022-09-19 00:39:00

mongoose不让你添加一个可枚举属性罢了,不然它叠代的时候你说它该不该带上咱自定义的addkey,可以换种方式,用Object.defineProperty,这么写:

Object.defineProperty(Object.prototype, 'addkey', {
  value :   function(key,value){
                if(key){
                    this[key]=value
                }  
                return this  
            }
});

希望能帮助到你。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文