首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MongoDb在控制台中显示结果,但不在浏览器中显示

MongoDb在控制台中显示结果,但不在浏览器中显示
EN

Stack Overflow用户
提问于 2020-02-07 19:16:50
回答 3查看 274关注 0票数 0

你好,我在浏览器上运行这段代码时没有得到任何结果。文档在我的控制台中显示,但现在在浏览器中显示。我想知道哪里出了错。我是nodejs的新手,正在照本宣科,但它并不能很好地工作。API.JS

代码语言:javascript
运行
复制
    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();
        })
      })
    };
EN

回答 3

Stack Overflow用户

发布于 2020-02-07 20:49:42

@Arslan你能用res.json({documents : documents})代替res.end(JSON.stringify(Documents))吗?

如果它不能给出正确的答案,那么;

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

票数 0
EN

Stack Overflow用户

发布于 2020-02-07 21:44:36

我通过调试代码找到了解决方案database.js中缺少一个回调函数存在两个问题

代码语言:javascript
运行
复制
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 
        })
    })
};
票数 0
EN

Stack Overflow用户

发布于 2020-02-10 17:26:21

你能详细解释一下你到底想在浏览器上显示什么吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60112390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档