我用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)
我希望有人可以帮助我,我现在正在战斗多年!
先谢谢你们,伙计们!
答案 0 :(得分:1)
这个问题在很久以后就已经解决了!
我必须在我的配置中在mongolab的网站上启用API。