AngularJS – 与mongodb的交互

我是新的MEAN堆栈,我正在尝试创build一个基本的一页应用程序。

我试图连接到MongoDB,然后列出控制器中的某个集合中的值。

但是,当我find答案时,我遇到了这个答案使用AngularJs和MongoDB / Mongoose

然后,如果你不能在angular和mongo之间使用它,那么下面的代码有什么意义? 还是有其他临时步骤使用它?

var mongoose = require('mongoose'); var db = mongoose.createConnection('mongodb://localhost:3000/database'); var orderSchema = new mongoose.Schema({ routeFrom : String, routeTo : String, leaving: String }); var Order = db.model('Order', orderSchema); module.exports = Order; 

编辑:我试图使用它的情况是这样的:

Geek.html

 <div class="jumbotron text-center"> <h1>Geek City</h1> <p>{{tagline}}</p> <ul> <li ng-repeat="value in dataValues"> {{value.name}} </li> </ul> </div> 

GeekController

 angular.module('GeekCtrl', []).controller('GeekController', function($scope) { $scope.tagline = 'The square root of life is pi!'; $scope.dataValues = function(){ var mongo = require('../config/db.js'); var collectionValues = mongo.myCollection.find(); return collectionValues; }; }); 

你不能在Angular中需要db.jsconfiguration文件,因为它没有设置在客户端使用。 你所描述的是所谓的“同构”方法。

我的意思是:mongo是一个数据库系统(粗略地说)。 为了从数据库获取数据,我们通常不信任客户端。 所以我们有一些授权客户端的服务器端代码(PHP,Ruby,Node.js,Java,你有什么),处理和过滤数据并将其返回给客户端(在本例中为Angular.js)。 所以你的Mongoose模型被设置为由服务器端JavaScript和应用程序的一部分使用。 服务器端也应该为Angular提供数据,所以你可以连接到Angular的Node.js,而不是直接连接到Mongo。 所以(通常)服务于你的angular度文件的服务器,也将服务它从mongo读取的数据。

如果您希望使用Angular的无服务器数据,则可以查看Firebase.js。 这是angular度准备,它可以帮助你不乱用Mongo,mongoose和服务器端代码。

你可以尝试一个混合的方法,像meteor.js或backbone.js设置为在客户端和服务器上工作,或者看看这篇文章的更多信息。

或者如果你想运行你自己的Mongo,你可以用–rest启动mongo,那么你可以直接连接到Mongo,在http://somehost:28017/mydatabase或者其他东西类似,取决于你的设置。

Mongoose是一个节点模块,据我所知它没有前端组件,所以你不会直接在你的前端js代码中使用它。 它只会帮助你在你的应用程序的服务器端。 如果你对Node相对来说比较陌生,那么这个东西可能会变得很混乱,因为它全是端到端的javascript,有时候还不清楚在服务器或者前端运行什么模块,特别是因为有些模块可以兼得。

Node,MongoDB,Express和Mongoose都位于服务器上。

在浏览器中的angular度生活,并不能直接使用任何服务器端组件。

使用MEAN堆栈,您将构build一个使用mongoose与mongodb进行交谈的节点应用程序,并向您的前端展示api。 然后在您的html / js代码中,您将使用angular和$ http服务与服务器通信以获取和设置数据。

有一个伟大的教程,引导你通过scotch.io的整个过程: http ://scotch.io/bar-talk/setting-up-a-mean-stack-single-page-application