角度没有连接到猫鼬

时间:2014-09-24 09:26:11

标签: angularjs mongoose

我正在使用angular连接到mongoose db。 我有一个.js文件,其中我编写了代码以在db中插入数据:

'use strict'

test.controller('registrationCtrl', function($scope){
console.log('1');
    $scope.newregister = function(user) {
        console.log('inside registration function 1');
        var user = require(['../server.js']);
        console.log('inside registration function');

        var mongoose = require('mongoose');
        console.log('inside mongoose');

        mongoose.connect('mongodb://localhost/userregistration');
        console.log('inside connect');

        var userSchema = {
            username: String,
            firstname:String,
            lastname: String,
            email: String,
            password: String
        }          



    }

});

但是当我尝试运行代码时,它会给出错误:

1
inside registration function 1
inside registration function
Error: Module name "mongoose" has not been loaded yet for context: _. Use require([])
http://requirejs.org/docs/errors.html#notloaded

我刚刚创建的新js来测试db函数并且工作正常。

var mongoose = require('mongoose');

mongoose.connect('mongodb://localhost/userregistration');
console.log('1');
var userSchema = {
    username: String,
    firstname:String,
    lastname: String,
    email: String,
    password: String
}
console.log('2');
var User = mongoose.model('User', userSchema, 'user');
console.log('3');
var newUser = new User({
    username: 'sa',
    firstname:'sa',
    lastname: 'sa',
    email: 'a@a.com',
    password: 'sa'

});

console.dir(newUser);
newUser.save(function(err){
   if(!err) console.log('inserted successfull');
    else
   {
       console.log('failed');
   }

}); 

2 个答案:

答案 0 :(得分:0)

var mongoose = require('mongoose');

此行应位于您的控制器之外,即低于或高于use strict

答案 1 :(得分:0)

您的HTML代码具有向后依赖性。在在线网页(html代码)中使用require('mongoose')无法正常工作。为此,您可以使用 browserify require.js 来消除这些依赖关系。 他们将允许您将<script> js文件链接到require.js(自动生成),代码将正常工作。 如果您不理解,请访问http://requirejs.org/。在那里可以清楚地解释。