Javascript MongoDb在控制台而不是浏览器中显示结果

Javascript MongoDb在控制台而不是浏览器中显示结果,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,您好,运行此代码时,我在浏览器上没有得到任何结果。文档显示在我的控制台中,但现在显示在浏览器中。我可以知道错误在哪里吗。我是nodejs的新手,并遵循这本书,但它并不好用。 API.JS var http = require('http'); var url = require('url'); var database = require('./database'); function findAllProducts(resourceName,req,res){

您好,运行此代码时,我在浏览器上没有得到任何结果。文档显示在我的控制台中,但现在显示在浏览器中。我可以知道错误在哪里吗。我是nodejs的新手,并遵循这本书,但它并不好用。 API.JS

    var http = require('http');
    var url = require('url');
    var database = require('./database');

    function findAllProducts(resourceName,req,res){
            database.find('Orderbase','order','{}',(err,documents)=>{
            res.writeHead(200,{'Content-Type':'application/json'});
            res.end(JSON.stringify(documents));
        });
    };

    var server = http.createServer((req,res)=>{
        parsedURL = url.parse(req.url,true);
        switch(parsedURL.pathname)
        {
            case '/api/order/':
                if (parsedURL.query.id) 
                {
                    findProductById(id,req,res);
                }
                else
                {
                    findAllProducts(req,res);
                }   
            break;
            default:
            res.end(JSON.stringify("you shell not pass!"));
        }

    });
    server.listen(8080);
    console.log('Up, running and ready for action!');

    database.js

    var MongoClient = require('mongodb').MongoClient;
    var assert = require('assert');
    var connect = function (databaseName, callback) {
    var url = 'mongodb://localhost:27017/' + databaseName;

MongoClient.connect(url, (error, database)=> {
        assert.equal(null, error);
        console.log("Successfully connected to MongoDB instance!");
        callback(database);
       });
};
    exports.find = (databaseName, collectionName, query)=> {
       connect(databaseName, (database)=> {
       var collection = database.collection(collectionName);
       collection.find(JSON.parse(query)).toArray(
          (err, documents)=> {
          assert.equal(err, null);
          console.log("MongoDB returned the following documents:");
          console.dir(documents);
          database.close();
        })
      })
    };
@阿尔斯兰,你能试试吗 res.json({documents:documents})而不是res.end(json.stringify(documents))

如果它不能给出正确的答案

var document=JSON.Stringify(文档);
res.json({documents:document})

我通过调试代码找到了解决方案。有两个问题,database.js中缺少一个回调

exports.find = (databaseName, collectionName, query,callBack)=> { //callback was missing
    connect(databaseName, (database)=> {
        var collection = database.collection(collectionName);
        collection.find(JSON.parse(query)).toArray((err, documents)=> {
           assert.equal(err, null);
           callBack(documents); // callback was missing
           database.close();
           return; // return was missing 
        })
    })
};

res.end
用于返回没有数据的响应。它应该是
res.send
。这是否回答了您的问题?对不起,我只是把它从res.send改为res.end。res.send也没有在浏览器上显示数据相同的结果现在在浏览器上显示结果,但在控制台上仍然显示结果我试图删除像res.end(JSON.stringify(“一些文本!”)@ArslanKhan你能详细解释一下你到底想在浏览器上显示什么吗?