sova
sova

Reputation: 5650

MongoDB output to browser

Hello I'm learning mongoDB and trying to print out my database query results to the browser.

I have a program working where it writes the output JSON to the console using console.log()

Is there a way to use res.send() (using express) or response.write() and response.send() to simply output the raw JSON data that the database query gets?

In other words, How can I make my database invokatation return a string?

// Use connect method to connect to the server
var invokeDatabase = function() {
    MongoClient.connect(url, function(err, db) {
        assert.equal(null, err);
        console.log("Connected successfully to database server");

        findDocuments(db, function() {
            findDocumentsFiltered(db, function() {
                db.close();
            });
        });
    });
};

//routes
app.get('/', function(req, res) {
    console.log("Someone connected.")
    res.send("accessing database... " + invokeDatabase())
        //res.send('Welcome G')
})

Upvotes: 0

Views: 1217

Answers (1)

Arif Khan
Arif Khan

Reputation: 5069

This example may help you to understand

// Use connect method to connect to the server
var invokeDatabase = function(callback) {
    MongoClient.connect(url, function(err, db) {
        //assert.equal(null, err);
        if(err) {
            console.log("Unable to connect database");
            callback(err, null);
            return;
        }
        console.log("Connected successfully to database server");

        findDocuments(db, function() {
            findDocumentsFiltered(db, function(err, data) {
                callback(err, data);
                db.close();
            });
        });
    });
};

//Added for demo. Here users is collection 
var findDocumentsFiltered = function(db, callback) {
    db.collection('users').find({}).toArray(function(err, userList) {
        callback(err, userList);
    });
};

//routes
app.get('/', function(req, res) {
    console.log("Someone connected.")
    invokeDatabase(function(err, data) {
        if(err)
            res.status(500).json({error: err});
        else
            res.json(data);
    }))
        //res.send('Welcome G')
})

Upvotes: 1

Related Questions