MongoJS,Node,MongoLab - 如何在线获取数据库

时间:2015-10-30 08:19:25

标签: mongodb ionic mlab mongojs

我用Ionic,MongoJS,Angular JS(Mean Stack)创建了一个混合应用程序。 我的应用程序在本地运行良好。这意味着我的mongod(Mongo服务)和我的mongo在我的电脑上本地运行。我还有一个位于本地的server.js(node)。

现在我想使用MongoLab(MongoDB即服务)将我的数据库的位置从本地更改为在线。

我打算只更改连接路径,但出于某种原因,我通过我的http get请求收到了一个未定义的内容。

我的代码:

server.js

var express = require('express');
var app = express();
var mongojs = require('mongojs');

//var db = mongojs('nzbaienfurtdb', ['nzbaienfurtdb']); // This is my old mongojs which ran locally and worked fine.
var databaseUrl = 'mongodb://dbuser:password@ds045604.mongolab.com:45604/nzbaienfurtdb';
var db = mongojs(databaseUrl, ['nzbaienfurtdb']); // database online with MongoLab
var bodyParser = require('body-parser');
app.use(express.static(__dirname + "/www"));
app.use(bodyParser.json());

app.get('/nzbaienfurtdb', function (req, res) {
console.log("I received a GET request")

db.nzbaienfurtdb.find(function (err, docs){
    console.log(docs);
    res.json(docs);
   });
});

app.listen(3000);
console.log("server running on 3000");

这是我从服务中获取请求的一部分:

service.js

return {

getUsers: function(){""
$http.get("/nzbaienfurtdb")

.success(function(data, status, headers, config){

            headers("Cache-Control", "no-cache, no-store, must-revalidate");
            headers("Pragma", "no-cache");
            headers("Expires", 0);
            users = angular.fromJson(data);

           })

.error(function(data, status, headers, config){
            console.log('Data could not be loaded, try again later');

         })
     return users;

    }

已经安装了MongoLab。

我的问题:

为什么我的http GET请求未定义? 当我想在Android手机上部署Ionic App时,我的server.js文件会发生什么?服务器是否在设备上运行?

由于我更改了var db变量,因此在Chrome控制台中也会收到以下错误消息:

---------错误代码:

SyntaxError: Unexpected end of input
at Object.parse (native)
at Object.fromJson    (http://localhost:3000/lib/ionic/js/ionic.bundle.js:8764:14)
at http://localhost:3000/js/userServices.js:23:27
at http://localhost:3000/lib/ionic/js/ionic.bundle.js:15737:11
at wrappedCallback (http://localhost:3000/lib/ionic/js/ionic.bundle.js:19197:81)
at wrappedCallback (http://localhost:3000/lib/ionic/js/ionic.bundle.js:19197:81)
at http://localhost:3000/lib/ionic/js/ionic.bundle.js:19283:26
at Scope.$eval (http://localhost:3000/lib/ionic/js/ionic.bundle.js:20326:28)
at Scope.$digest (http://localhost:3000/lib/ionic/js/ionic.bundle.js:20138:31)
at Scope.$apply (http://localhost:3000/lib/ionic/js/ionic.bundle.js:20430:24)

我希望有人可以帮助我,我现在正在战斗多年!

先谢谢你们,伙计们!

1 个答案:

答案 0 :(得分:1)

这个问题在很久以后就已经解决了!

我必须在我的配置中在mongolab的网站上启用API。