2014-09-24 67 views
1

我使用角度連接貓鼬數據庫。 我有在那裏我寫的代碼插入在DB數據.js文件:角度不符合貓鼬

'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: '[email protected]', 
    password: 'sa' 

}); 

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

}); 
+0

有趣的是,如果你取出angularJS,你的貓鼬工作正常嗎? – Hatjhie 2014-09-24 09:32:09

+0

如果我在.js文件中添加整個代碼並運行tej js文件,它會將數據插入到db.I編輯我的問題以提供我剛剛創建的js ..並且工作正常 – kawade 2014-09-24 09:47:12

+0

@Hatjhie:任何想法? – kawade 2014-09-24 10:06:34

回答

0
var mongoose = require('mongoose'); 

該線路應該是外部控制器即正好低於或高於use strict

+0

這樣做會給出錯誤,如「未捕獲的ReferenceError:需求未定義」 – kawade 2014-09-24 09:36:34

+0

對不起。還要移動這一行'var user = require(['../ server.js']);'上面的貓鼬需要線。 – rishiag 2014-09-24 09:39:45

+0

嗨,我已經創建了一個新的js文件,我引用了我的另一個js ...我已經在頂部包含了 – kawade 2014-09-24 09:51:19

0

你的HTML代碼具有向後依賴性。在線網頁(html代碼)中使用require('mongoose')將不起作用。爲此,您可以使用browserifyrequire.js來消除這些依賴關係。 他們會讓你鏈接你的<script> js文件到require.js(自動生成),並且代碼將正常工作。 如果您不理解,請造訪http://requirejs.org/。這裏清楚地解釋了這一點。