Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将MongoDB查询捕获为字符串并显示在我的Node JS页面中(使用mongojs驱动程序)?_Javascript_Node.js_Mongodb_Mongojs - Fatal编程技术网

Javascript 如何将MongoDB查询捕获为字符串并显示在我的Node JS页面中(使用mongojs驱动程序)?

Javascript 如何将MongoDB查询捕获为字符串并显示在我的Node JS页面中(使用mongojs驱动程序)?,javascript,node.js,mongodb,mongojs,Javascript,Node.js,Mongodb,Mongojs,我希望能够查询我的mongoDB并在我用Node制作的网页上显示此结果…现在我正在使用mongojs驱动程序-我发现该驱动程序非常适合将数据放入DB-语法与MongoShell相同,我可以将代码正确地放入我的Node应用程序中。这个任务…仅仅在网页上,甚至在控制台上显示查询结果,已经证明是非常困难的。下面是我代码的相关部分和我尝试的内容 var databaseUrl = "test"; // "username:password@example.com/mydb" var collection

我希望能够查询我的mongoDB并在我用Node制作的网页上显示此结果…现在我正在使用mongojs驱动程序-我发现该驱动程序非常适合将数据放入DB-语法与MongoShell相同,我可以将代码正确地放入我的Node应用程序中。这个任务…仅仅在网页上,甚至在控制台上显示查询结果,已经证明是非常困难的。下面是我代码的相关部分和我尝试的内容

var databaseUrl = "test"; // "username:password@example.com/mydb"
var collections = ["graph1"]
var db = require("mongojs").connect(databaseUrl, collections);

console.log(db.graph1.find());
我制作了一个名为graph1的集合,在mongo提示符中,这将产生结果。注意…我确实想在HTML中显示它…但我认为如果我能将它打印到控制台,我可以在我的HTML中获得它

它目前输出以下内容:

{_oncursor: { get: [Function], put: [Function] } } 
我想要的某种原型是这样的:

{ "x" : "0", "y" : "1343725568", "_id" : ObjectId("4fba6....") }
试试这个:

    db.graph1.find( {}, function(err, result ){ 
    if (err || !result ) console.log(" an error has occurred" );
    else {
    console.log(result);
    }
    });
那里的控制台日志正在打印db.graph1.find()返回值,这是它的函数原型。它不会返回任何有用的内容,因为它是一个异步函数。对其检索的数据执行可用操作的唯一方法是传递一个回调,该回调将处理数据:

    db.graph1.find( { //what you want to search for here }, callback);

    function callback(result_from_mongo) {
    // do stuff here with result_from_mongo
    }

出于传统的考虑,每个人都应该进一步了解,您可以操纵查询结果的唯一时间是在回调中…因此,不要将其设置为a,也不要将其设置为var,以便在之后进行愚弄,仅在回调中)

使用以下命令可以使查询结果成为一个没有错误的字符串。这是标准的图书馆资料

  var results_not_ugly_or_messed_up = (JSON.stringify(result));
如果你想在回调之外使用你的结果,你可以调用一个perl/python/sh/bat/任何带有“stringized”结果的脚本(在这个例子中,results\u not\u丑恶的或\u混乱的)作为一个参数,将其存储在一个文件中,等等,然后读取并随意使用

对于完整的真实示例:

db.newguestbook.find({"Name" : /[Aa]/ },[],function(err,p) //newguestbook is a collection I have    
//you will need to change that unless you make a collection called newguestbook
{
    cursor = p;
    console.log(cursor);
    console.log(JSON.stringify(cursor))); //We have a nice string, see?
    var exec = require('child_process').exec;
    exec("perl writetofile.pl " + JSON.stringify(cursor) , function(err, 
    stdout, stderr)
    {
        console.log("Perl run to store this result in a file");
    });

});
}