2016-10-25 18 views
0

Это мой первый раз, используя Mongoose и сохранения функция не работает для меня ...Mongoose сохранить не работает «идентификатор не определен»

На пользовательском файле модели:

var mongoose = require('mongoose'); 
var Schema = mongoose.Schema; 

var User = mongoose.model('User', { 
    name: Schema.Types.Mixed, 
    gender: String, 
    email: String 
}); 

module.exports = User; 

На мой пользовательский файл контроллера:

// Create a user 
router.post('/', function(req, res) { 
    var user = new User(req.body); 
    user._id = mongoose.Types.ObjectId(); 
    user.save(function(err) { 
    if (err) { 
     return res.status(500).json({ 
     error: "Error creating user: " + err 
     }); 
    } 

    return res.status(200).end(); 
    }); 
}); 

Я попробовал все, но я не могу сохранить пользовательский объект в базу данных: «идентификатор не определен» On The дБ _id является ObjectId.

Спасибо.

ответ

1

mongoose.model receives collection name and a Schema as arguments, а не обычный объект.

Таким образом, вы должны использовать следующий код вместо:

var schema = new mongoose.Schema({ 
    name: Schema.Types.Mixed, 
    gender: String, 
    email: String 
}); 
var User = mongoose.model('User', schema); 
+0

I h ave попробовал ваше решение, и я все еще получаю это сообщение об ошибке. – Nipo

0

может быть, мы можем изменить кодовую структуру & & удалить "user._id", тест, пожалуйста, этот код:

*model file:

var mongoose = require('mongoose'); 
var Schema = mongoose.Schema; 

var UserSchema = new Schema({ 
    name: Schema.Types.Mixed, 
    gender: String, 
    email: String 
}); 

module.exports = mongoose.model('User', UserSchema); 

*controller file:

// Create a user 
router.post('/', function(req, res) { 
    var user = new User(req.body); 
    user.save(function(err) { 
    if (err) { 
     return res.status(500).json({ 
     error: "Error creating user: " + err 
     }); 
    } 

    return res.status(200).end(); 
    }); 
}); 
+0

Я пробовал ваше решение, и я все еще получаю это сообщение об ошибке. – Nipo

+0

показать нам сообщение об ошибке пожалуйста !! – lefdilia

+0

angular.js: 13642ReferenceError: идентификатор не определен на Object.userService.createUser (UserService.js: 71) на м $ scope.createUser (UserController.js: 133). по п (Eval во время компиляции (угловой. min.js: 1), : 4: 221) в точке Ь (angular.js: 15628) при е (angular.js: 25172) в м $ Eval (angular.js: 17378.) на м. $ apply (angular.js: 17478) в HTMLInputElement. (angular.js: 25177) в HTMLInputElement.dispatch (jquery.min.js: 3) в HTMLInputElement.r.handle (jquery.min.js: 3) (анонимная функция) @ angular.js: 13642 – Nipo

Смежные вопросы