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

问题描述:

我有一个简单的客户端将数据发布到服务器,并且服务器将数据保存到mongoDB中。将数据保存到mongoDB时发生500内部服务器错误

当我发送数据到post请求我发现身体的数据,但在保存此数据的过程中,我得到内部服务器错误。

注:我使用mongoLab主办我的MongoDB

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

App listeining on 3000 
{ email: '[email protected]', 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:[email protected]:49211/mydatabasename'); 
var server = app.listen(3000, function(){ 
    console.log('App listeining on', server.address().port); 
}) 

这里是我让我的客户端控制台上:

POST http://localhost:3000/register 500 (Internal Server Error) 

这里是发送我的控制器的代码发送请求到我的服务器:

.controller('SignUpCtrl', function($scope, $http, $state) { 

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

    }; 

}) 
+2

你的用户模型是否有Mongoose模式? – chridam 2015-03-03 13:40:59

+0

我直接编码模式,如果你注意到我可以创建计划变量,但是,它是一样的 – 2015-03-03 14:18:16

+0

你在哪里实例化'User'模型? @blackmind提出了一个解决问题的方法,我认为你应该尝试 – chridam 2015-03-03 14:20:40

var newUser = new User({ 
    email: user.email, 
    password: user.password 
}) 

代替

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);