【发布时间】:2015-12-12 03:52:54
【问题描述】:
第一个问题,啊!
有没有人知道/有关于为什么 mongoose 将其调试日志写入 stderr 的信息?反正有没有写到标准输出?
【问题讨论】:
标签: debugging mongoose stdout options stderr
第一个问题,啊!
有没有人知道/有关于为什么 mongoose 将其调试日志写入 stderr 的信息?反正有没有写到标准输出?
【问题讨论】:
标签: debugging mongoose stdout options stderr
调试选项接受一个函数而不是一个布尔值:
mongoose.set("debug", function (collection, method, paramA, paramB, paramC) {
console.log(collection)
console.log(method)
console.log(paramA)
console.log(paramB)
console.log(paramC)
})
我之所以输入paramA, paramB, paramC 是因为参数取决于所使用的方法和选项:
Person.create({firstName: "john"}, callback)
// people
// insert
// {firstName: "john"}
// undefined
// undefined
Person.update({firstName: "john"}, {lastName: "doe"}, {new: true}, callback);
// people
// update
// {firstName: "john"}
// {$set: {lastName: "doe"}}
// {new: true}
Person.find({firstName: "john"}, callback);
// people
// find
// {firstName: "john"}
// undefined
// undefined
Person.find({firstName: "john"}, {limit: 1}, callback);
// people
// find
// {firstName: "john"}
// {limit: 1}
// undefined
记录的信息是 Mongodb 输入,而不是 Mongoose 输入。您可以在update() 方法中看到这一点,paramB 以{$set: {lastName: "doe"}} 出现。在幕后,Mongoose 将更新转换为使用 $set,这就是记录的原因。
从此,您可以轻松地随意格式化它和process.stdout.write()
【讨论】: