2016-11-22 3 views
0

У меня проблема схемы. Я не получаю правильную схему в своем api. вот мой апи:ошибка схемы ошибка app

var Meetup = require('./models/meetup'); 

    module.exports.create = function (req, res) { 
     var meetup = new Meetup(req.body); 
     meetup.save(function (err, result) { 
     console.log(result); 
     res.json(result); 
     }); 
    } 

    module.exports.list = function (req, res) { 
     Meetup.find({}, function (err, results) { 
     res.json(results); 
     }); 
    } 

В console.log отображает {__v: 0, _id: 58343483ff23ad0c40895a00} в то время как он должен отображать {__v: 0, имя: 'Ввод текста', _id: 58343076b80874142848f26e}

вот моя модель:

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

var Meetup = new Schema({ 
    name: String, 

}); 


module.exports = mongoose.model('Meetup', Meetup); 
+0

'console.log (req.body) '? – nicovank

+0

Возможно, у вас есть разные имена в вашем 'req.body', пожалуйста, покажите, что он содержит. –

+0

console.log (req.body) дает мне undefined –

ответ

0

Если req.body не определено (как вы написали в комментариях), то, очевидно, new Meetup(req.body); не может заполнить новые объекты с любыми данными (например, {имя: «ввода текста»} или что-нибудь еще), так как он называется с undefined в качестве аргумента Мент.

Убедитесь, что вы используете body-parser и передаете правильные данные в запросе.

Также проверьте наличие ошибок. Каждый обратный вызов, который принимает err аргумент должен быть в форме:

module.exports.list = function (req, res) { 
    Meetup.find({}, function (err, results) { 
    if (err) { 
     // handle error 
    } else { 
     // handle success 
    } 
    }); 
} 

Как отслеживать проблемы:

  • убедитесь, что вы используете body-parser на внутреннем интерфейсе
  • убедитесь, что вы проходите правильные данные на интерфейсе
  • убедитесь, что данные, переданные вашим интерфейсом, находятся в правильном месте (корпусе)
  • убедитесь, что данные находятся в правильный формат (JSON? URL-закодированы?)
  • добавить console.log(req.body) после new Meetup(req.body); знать, что вы сохраните
  • откройте вкладку Сеть в консоли разработчика вашего браузера и посмотреть, что передается
+0

10q для вашего ответа, но вы можете быть более конкретным. Я новичок и могу сказать, где я должен смотреть. это в моем угловом контроллере или на стороне сервера –

+0

@MikyasTADESSE см. мой обновленный ответ. Вам нужно разобрать тело на стороне сервера, но вы также убедитесь, что вы отправляете правильные данные в теле ваших запросов из своего углового приложения. используйте инструменты разработчика, чтобы увидеть, что фактически передано. – rsp

+0

10q вы так много. Объединение двух разных приложений - это приложение для аутентификации, а другое - приложение todo, в котором отображаются данные пользователя и приложение. Оба работают отлично. когда я объединил их, во втором приложении есть ошибка синтаксического анализа; Я думаю, что у меня проблема: приложение аутентификации использует app.use (bodyParser.json()); а второй использует app.use (bodyParser()); Я думаю, что есть конфликт, но я не знаю, как его решить. Вы можете помочь –