Is it possible to print an objects contents e.g. methods and attributes in Node.js?
At the moment I'm trying to print the session object and get the following:
console.log("Session:" + sessio开发者_Go百科n);
> Session:[object Object]
Maybe in a similar way to print_r(array) in PHP, or using .toString in Java.
Try this one:
console.log("Session: %j", session);
If the object could be converted into JSON, that will work.
function prettyJSON(obj) {
console.log(JSON.stringify(obj, null, 2));
}
// obj -> value to convert to a JSON string
// null -> (do nothing)
// 2 -> 2 spaces per indent level
JSON.stringify on MDN
To have an output more similar to the raw console.log(obj)
I usually do use console.log('Status: ' + util.inspect(obj))
(JSON is slightly different).
This will work with any object:
var util = require("util");
console.log(util.inspect(myObject, {showHidden: false, depth: null}));
console.dir() is the most direct way.
console.log(obj);
Run: node app.js > output.txt
This will for most of the objects for outputting in nodejs console
var util = require('util')
function print (data){
console.log(util.inspect(data,true,12,true))
}
print({name : "Your name" ,age : "Your age"})
console.dir with the depth argument set will do the trick. This will print JSON objects to any arbitrary depth. Depth:null means print every level.
console.dir(someObject, { depth: null })
精彩评论