我有js
个文件在mongodb
内运行,我得到console.log
表达式进行调试:
use test;
db.city.find().snapshot().forEach(function(city){
var Pos = city.Pos;
if (Pos)
{
longLat = Pos.split(" ");
console.log("longLat"); // for debugging ----------------------------
console.log(longLat);
lon = longLat[0];
lat = longLat[1];
if (lon && lat)
{
lon = parseFloat(lon);
lat = parseFloat(lat);
longLat = [lon, lat];
city.longLat = longLat;
}
}
db.orgs.save(city);
})
我跑的时候......
mongo < /path/to/this/js/file.js
...输出中出错:
ReferenceError: console is not defined
有没有办法记录中间结果以进行调试?
答案 0 :(得分:6)
请改用print
或printjson
方法。这些用于发出就像shell中的console.log()一样:
if (Pos)
{
longLat = Pos.split(" ");
print("longLat"); // for debugging ----------------------------
printjson(longLat);
答案 1 :(得分:0)
如果您不想更改代码,可以执行此操作。
var console = {};
console.log = print;
然后,当您的代码调用console.log时,它实际上调用了print()。 但这不是一个真正的替代品,因为它不会像NodeJS的console.log()那样处理对象的打印。例如,
console.log('abc', { 'field1' : 123 });
// In NodeJS output is: abc { field1: 123 }
// In Mongo print output is: abc [object Object]
更全功能的实现将处理此问题。 如果您想创建功能更全面的实现,那么本文Taking Over console.log可能有所帮助。