用左手想象下面的服务器#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?
感谢您的帮助
答案 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