Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 500将数据保存到mongoDB时发生内部服务器错误_Angularjs_Node.js_Mongodb_Mlab - Fatal编程技术网

Angularjs 500将数据保存到mongoDB时发生内部服务器错误

Angularjs 500将数据保存到mongoDB时发生内部服务器错误,angularjs,node.js,mongodb,mlab,Angularjs,Node.js,Mongodb,Mlab,我有一个简单的客户端将数据发布到服务器,服务器将数据保存到mongoDB中 当我将数据发送到post请求时,我在正文中找到了数据,但在保存此数据的过程中,我得到了内部服务器错误 注意:我使用mongoLab来托管我的mongoDB 这是我在服务器控制台上得到的 App listeining on 3000 { email: 'm.email@gmail.com', password: '123456' } TypeError: object is not a function index.js:

我有一个简单的客户端将数据发布到服务器,服务器将数据保存到mongoDB中

当我将数据发送到post请求时,我在正文中找到了数据,但在保存此数据的过程中,我得到了内部服务器错误

注意:我使用mongoLab来托管我的mongoDB

这是我在服务器控制台上得到的

App listeining on 3000
{ email: 'm.email@gmail.com', password: '123456' }
TypeError: object is not a function
index.js:25:16
以下是我的服务器的代码:

var express = require('express');
var bodyParser = require('body-Parser');
var mongoose = require('mongoose');

var app = express();

app.use(bodyParser.json());

// set up CORS resource sharing
app.use(function(req, res, next){
    res.header('Access-Control-Allow-Origin', '*');
    res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
    res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization');
    next();
})
//the User Model.
var User = mongoose.model('User',{
    email: String,
    password: String
})
app.post('/register', function(req, res){
    var user = req.body;
    console.log(user);

    var newUser = new({
        email: user.email,
        password: user.password
    })
    newUser.save(function(err){
        res.status(200).json(newUser);
    })
})
//connect to MongoDB
mongoose.connect('mongodb://myusername:mypassword@ds049211.mongolab.com:49211/mydatabasename');
var server = app.listen(3000, function(){
    console.log('App listeining on', server.address().port);
})
.controller('SignUpCtrl', function($scope, $http, $state) {

 $scope.signUp = function() {
   var url = 'http://localhost:3000/register';
   var user = {
//        email: $scope.email,
//        password: $scope.password
        email: 'm.email@gmail.com',
        password: '123456'
      };
   $http.post(url, user)
     .success(function(res){
        console.log('You are now Registered');
    })
     .error(function(err){
        console.log('Could not register');
    });

  };

})
以下是我在客户端控制台上得到的信息:

POST http://localhost:3000/register 500 (Internal Server Error)
这是我的控制器的代码,它将post请求发送到我的服务器:

var express = require('express');
var bodyParser = require('body-Parser');
var mongoose = require('mongoose');

var app = express();

app.use(bodyParser.json());

// set up CORS resource sharing
app.use(function(req, res, next){
    res.header('Access-Control-Allow-Origin', '*');
    res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
    res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization');
    next();
})
//the User Model.
var User = mongoose.model('User',{
    email: String,
    password: String
})
app.post('/register', function(req, res){
    var user = req.body;
    console.log(user);

    var newUser = new({
        email: user.email,
        password: user.password
    })
    newUser.save(function(err){
        res.status(200).json(newUser);
    })
})
//connect to MongoDB
mongoose.connect('mongodb://myusername:mypassword@ds049211.mongolab.com:49211/mydatabasename');
var server = app.listen(3000, function(){
    console.log('App listeining on', server.address().port);
})
.controller('SignUpCtrl', function($scope, $http, $state) {

 $scope.signUp = function() {
   var url = 'http://localhost:3000/register';
   var user = {
//        email: $scope.email,
//        password: $scope.password
        email: 'm.email@gmail.com',
        password: '123456'
      };
   $http.post(url, user)
     .success(function(res){
        console.log('You are now Registered');
    })
     .error(function(err){
        console.log('Could not register');
    });

  };

})
试一试

而不是

var newUser = new({
    email: user.email,
    password: user.password
})
并确保用户具有如下模式集

var UserSchema = new Schema({
    email : String,
    password: String,
});

module.exports = mongoose.model('User',UserSchema);
我假设它位于不同的文件中,并导入用户模式

var User = require(location of file);
试一试

而不是

var newUser = new({
    email: user.email,
    password: user.password
})
并确保用户具有如下模式集

var UserSchema = new Schema({
    email : String,
    password: String,
});

module.exports = mongoose.model('User',UserSchema);
我假设它位于不同的文件中,并导入用户模式

var User = require(location of file);

您的
用户
模型是否有Mongoose模式?如果您注意到我可以创建scheme变量,我会直接对模式进行编码,但它是相同的,您在哪里实例化
用户
模型@blackmind建议了一个解决问题的方法,我认为你应该尝试一下你的
用户
模型是否有猫鼬模式?如果你注意到我可以创建scheme变量,我会直接对模式进行编码,但它是相同的,你在哪里实例化
用户
模型@blackmind建议了一个解决问题的方法,我认为你应该试试