Object.prototype.asafd = function(){}报错,扩展任意方法都报错,之所以扩展Object.prototype是为了兼容客户端代码。
错误如下:
TypeError: Object function (expr){
} has no method 'onOpen’ at open (/var/node_modules/mongoose/lib/connection.js:313:27) at NativeConnection.Connection.onOpen (/var/node_modules/mongoose/lib/connection.js:322:5) at Connection.open (/var/node_modules/mongoose/lib/connection.js:198:12) at Db.open (/var/node_modules/mongoose/node_modules/mongodb/lib/mongodb/db.js:258:14) at Server.connect.connectCallback (/var/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/server.js:230:7) at g (events.js:185:14) at EventEmitter.emit (events.js:115:20) at Db._callHandler (/var/node_modules/mongoose/node_modules/mongodb/lib/mongodb/db.js:1396:25) at Server.connect.connectionPool.on.server._serverState (/var/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/server.js:421:30) at MongoReply.parseBody (/var/node_modules/mongoose/node_modules/mongodb/lib/mongodb/responses/mongo_reply.js:127:5)
可以在模型上添加方法。你去看看文档 我懒得翻了
不好兼容浏览器上的JS吧
@romboo 重点是为什么要兼容浏览器js呢
@darklowly 用Node.js最大的动力来自于前后端可以统一代码,然后是高并发
@romboo 重点是,这mongoose是数据库驱动。是后端的事
@darklowly 他可能试图让服务端的js在客户端也跑…比如 Object.prototype.each啥的.
@rekey 嗯,就是这个意思,如果js代码只能在服务器端运行,那就没什么意思了。
不要乱扩展Object的原型,如果你扩展不了,说明人家已经采取像Object.seal这样的方法阻止你的为所欲为!