我正在使用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');
}
});
答案 0 :(得分:0)
var mongoose = require('mongoose');
此行应位于您的控制器之外,即低于或高于use strict
答案 1 :(得分:0)
您的HTML代码具有向后依赖性。在在线网页(html代码)中使用require('mongoose')
无法正常工作。为此,您可以使用 browserify 或 require.js 来消除这些依赖关系。
他们将允许您将<script>
js文件链接到require.js(自动生成),代码将正常工作。
如果您不理解,请访问http://requirejs.org/。在那里可以清楚地解释。