console.log 会调用 mongoose 文档的 toObject 方法?

发布于 2022-09-07 04:05:52 字数 617 浏览 10 评论 0

const mongoose = require('mongoose')
mongoose.connect('mongodb://localhost/test')
const A = mongoose.model('A', new mongoose.Schema({name: String}))

A.create({name: 'aaa'}, (err, doc) => {
  console.log(doc) // { _id: 5ae424bdcc21a02b700f9342, name: 'aaa', __v: 0 }
  doc.toObject = o => 0
  console.log(doc) // 0
})
// ------------------------------------
A.create({name: 'aaa'}, (err, doc) => {
  console.log(doc) // { _id: 5ae42509ae09661d681416f8, name: 'aaa', __v: 0 }
  doc.toObject = 0
  console.log(doc) // 报错: TypeError: this.toObject is not a function
})

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

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

发布评论

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

评论(1

负佳期 2022-09-14 04:05:52

是调用了toString

Document.prototype.inspect = function(options) {
  var isPOJO = options &&
    utils.getFunctionName(options.constructor) === 'Object';
  var opts;
  if (isPOJO) {
    opts = options;
    opts.minimize = false;
  }
  return this.toObject(opts);
};

/**
 * Helper for console.log
 *
 * @api public
 * @method toString
 * @memberOf Document
 */

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