理解节点angular express和mongo之间的通信

时间:2014-06-08 08:32:10

标签: node.js angularjs express mongoose mean-stack

我正在尝试理解MEAN堆栈中的通信。

我编写了以下代码片段,使用yeoman fullstack生成器来搭建应用程序:

  • mongoose schema
'use strict';

var mongoose = require('mongoose'),
    Schema = mongoose.Schema;

var StuffSchema = new Schema({
    name: String,
});


mongoose.model('Stuff', StuffSchema);
  • 保存在mongodb上的代码
'use strict';

var mongoose = require('mongoose'),
    Stuff = mongoose.model('Stuff');

exports.create = function(req, res, next){
 var newStuff = new Stuff(req.body);

 newStuff.save(function(err){
    if (err) return res.json(400, err);
 })
 res.send(newStuff);
}
  • 节点路线
'use strict'

var stuff = require('./controllers/stuff'),

module.exports = function(app) {
    app.route('/api/stuffs')
       .post(stuff.create);
}
  • 角度服务
'use strict';

angular.module('ngStuff').factory('Stuff', function ($resource) {
    return $resource('/api/stuffs/');
});
  • 角度控制器
'use strict';

angular.module('ngStuff').controller('StuffCtrl', function($scope, $location, Stuff){
    $scope.stuff = {};

    $scope.add = function(){
    var stuff = new Stuff({name: $scope.stuff.name});

        stuff.$save(function(response){
            $location.path('#/');
        });
        $scope.stuff.name = "";
    }
 });

现在,我可以在mongodb上保存文档,但位置不会改变。 这是将所有连接在一起的正确方法吗?有没有更好的方法呢? 我应该在角度服务而不是角度控制器中编写保存功能吗?

1 个答案:

答案 0 :(得分:0)

我首先看一下mean.io并构建一个新包,并将其用作学习/理解堆栈通信的方法。从本质上讲,你将拥有一个完整的工作平均项目,你可以将其作为学习过程的一部分来理解

您还可以查看如何创建文章如何将数据保存到mongodb