【问题标题】:how to request mongoDB nodejs with javascript client side app如何使用 javascript 客户端应用程序请求 mongoDB nodejs
【发布时间】:2016-07-25 21:12:54
【问题描述】:

在左手边想象以下服务器 #1(在我们的数据中心) 蒙古数据库 节点 一些对 MongoDB 进行读写的 Nodejs 脚本

在右手边一个 nginx/apache 服务器 #2 一个用于显示 mongodb 并向 mongo 发送信息的 Web 应用

如何在服务器 2 上使用 javascript/Jquery 请求服务器 #1,并获取 Json 响应

目的是构建一个可以读写 mongo 的网络应用程序 在“客户端”服务器2上使用 JS/jquery

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

感谢您的帮助

【问题讨论】:

标签: node.js mongodb


【解决方案1】:

在带有 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/users 访问该数据,如下所示:

$.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" );
});

至于 PUT、DELETE 等其他 CRUD 操作,您可以使用 MongoDB 的原生 NodeJS driver,就像我在这个示例中所做的那样,或者像 Mongoose 这样的 ORM

【讨论】:

猜你喜欢
  • 2013-10-29
  • 2018-08-22
  • 2016-10-04
  • 2020-07-28
  • 1970-01-01
  • 2017-07-10
  • 2017-09-03
  • 1970-01-01
  • 2021-03-16
相关资源
最近更新 更多