如何使用javascript客户端应用程序请求mongoDB nodejs

时间:2016-07-24 16:12:39

标签: node.js mongodb

用左手想象下面的服务器#1(在我们的数据中心) MongoDB的 的NodeJS 一些读写MongoDB的Nodejs脚本

在右手中有一个nginx / apache服务器#2 用于显示mongodb并将信息发送到mongo的Web应用程序

我怎么能在服务器2上使用javascript / Jquery 请求服务器#1,并获得Json响应

目的是建立一个阅读和阅读的网络应用程序。写信给mongo 在"客户端使用JS / jquery" server2

我从现在开始使用REst API服务,但是由于很多错误/更改,我想要独立于它... 我怎样才能简单地编写一个nodejs服务,允许我将get / put / delete等发送到nodejs脚本并返回json?

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

在使用MongoDB的服务器上,您可以编写一个从Mongo读取并输出JSON数据的基本NodeJS / Express应用程序。例如,假设您的数据库中有一个users集合:

var MongoClient = require('mongodb').MongoClient
var express = require('express');
var app = express();
var bodyParser = require('body-parser');

app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json());

// Connection URL
var url = 'mongodb://localhost:27017/yourDatabaseName';

app.get('/users', function(req, res) {
    var getUsers = function(db, callback) {
        var collection = db.collection('users');
        collection.find({}, {password: 0}).toArray(function(err, docs) {
            callback(docs);
        });
    };
    MongoClient.connect(url, function(err, db) {
        getUsers(db, function(docs) {
            res.json(docs);
        });
    });
});

app.listen(3000, function () {
    console.log('Example app listening on port 3000!');
});

然后在服务器#2上,您可以使用jQuery的getJSON()方法从url server1的IP:3000 /用户访问该数据,如下所示:

$.getJSON( "server1IP:3000/users", function( data ) {
  var items = [];
  $.each( data, function( key, val ) {
    items.push( "<li id='" + key + "'>" + val + "</li>" );
  });

  $( "<ul/>", {
    "class": "my-new-list",
    html: items.join( "" )
  }).appendTo( "body" );
});

对于其他CRUD操作,如PUT,DELETE等,你可以像我在这个例子中那样使用MongoDB的原生NodeJS driver或像Mongoose这样的ORM