跳到主要内容
CNode

用了Mongoose后,不能用Object.prototype.method扩展对象

社区
Rromboo发布于 14 年前最后回复 14 年前
857530

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)

查看回复

回复 (8)

C
cheng19840218#814 年前

不要乱扩展Object的原型,如果你扩展不了,说明人家已经采取像Object.seal这样的方法阻止你的为所欲为!

R
romboo#714 年前
引用 darklowly可以在模型上添加方法。你去看看文档 我懒得翻了

@rekey 嗯,就是这个意思,如果js代码只能在服务器端运行,那就没什么意思了。

R
rekey#614 年前
引用 darklowly可以在模型上添加方法。你去看看文档 我懒得翻了

@darklowly 他可能试图让服务端的js在客户端也跑..比如 Object.prototype.each啥的.

D
darklowly#514 年前
引用 darklowly可以在模型上添加方法。你去看看文档 我懒得翻了

@romboo 重点是,这mongoose是数据库驱动。是后端的事

R
romboo#414 年前
引用 darklowly可以在模型上添加方法。你去看看文档 我懒得翻了

@darklowly 用Node.js最大的动力来自于前后端可以统一代码,然后是高并发

D
darklowly#314 年前
引用 darklowly可以在模型上添加方法。你去看看文档 我懒得翻了

@romboo 重点是为什么要兼容浏览器js呢

D
darklowly#114 年前

可以在模型上添加方法。你去看看文档 我懒得翻了

参与回复

登录后即可参与回复。登录