2015-03-03 56 views
0

我有一個簡單的客戶端將數據發佈到服務器,並且服務器將數據保存到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

回答

3

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); 
相關問題