2016-01-07 73 views
2

我得到了一個錯誤,而控制檯貓鼬對象。 這是我的代碼: -JSON.stringify不適用於NodeJs中的貓鼬對象

var mongoose = require('mongoose'); 
mongoose.connect('mongodb://localhost/test'); 
var db = mongoose.connection; 
db.on('error', console.error.bind(console, 'connection error:')); 
db.once('open', function() { 
    console.log('Yea! we are connected.'); 
}); 
console.log(JSON.stringify(mongoose)); 

這裏是錯誤消息: -

enter image description here

+1

的錯誤是很明顯的。爲什麼你要將貓鼬對象轉換爲JSON呢? – qqilihq

+0

你想做什麼?這是錯誤的,你正在嘗試將模塊對​​象串聯起來。 –

+0

我只想看看哪些數據在貓鼬對象中存在。如果我使用'console.log(mongoose)'我得到的結果,但不是適當的。@ qqilihq,@ Michelem – vineet

回答

2

您可能希望嘗試util.inspect(object)方法,該方法返回一個對象的字符串表示:

var util = require('util'); 
var mongoose = require('mongoose'); 
mongoose.connect('mongodb://localhost/test'); 
var db = mongoose.connection; 
db.on('error', console.error.bind(console, 'connection error:')); 
db.once('open', function() { 
    console.log('Yea! we are connected.'); 
}); 
console.log(util.inspect(mongoose, { showHidden: true, depth: null })); 
+1

我可以用肉眼看到整個貓鼬屬性和成員。謝謝@chridam。 – vineet

2

貓鼬模塊內部有此邏輯

Mongoose.prototype.Mongoose = Mongoose; 

它使環形結構(對象自參考)。你不能默認字符串化一個圓形對象。如果你想使用JSON.stringify添加自定義邏輯處理

JSON.stringify(obj,function(k,v){ //logic})