Igor Entaltsev Ответов: 1

Как я могу сохранить запись в MongoDB в проекте Node.js ?


Я новичок в среднем стеке. Не мог бы кто-нибудь помочь мне понять это:
Я создаю новую задачу и сохраняю ее, но на индексной странице вижу только ее.
_id: 5834ba711401ea28643cdfb8, __v: 0
Никаких других атрибутов. Однако docs.length в tasks/index. jade растет с каждой добавленной задачей.
Что я делаю не так?
Большое спасибо!
tasks.js
var express = require('express');
var router = express.Router();
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/todo_development');

var Schema = mongoose.Schema;
var ObjectId = Schema.ObjectId;
// #9
var Task = new Schema({
    task: String // #11
});
var Task = mongoose.model('Task', Task); // #10

router.get('/', function(req, res) {
    Task.find({}, function (err, docs){
        res.render('tasks/index', { 
            title: ' Ornbo | Todos index view' ,
            docs: docs // #12 
        });
    });
});

// @4
router.get('/new', function(req,res){
    res.render('tasks/new.jade', {
        title: 'New Task'
    });
});

//#5
router.post('/', function(req, res){
    var task = new Task(req.body.item); // #6
    task.save(function(err){ // #7
        if(!err){
            res.redirect('/tasks'); // #8
        } else {
            res.redirect('/tasks/new');
        }
    });

});

module.exports = router;


tasks/index.jade
- if(docs.length)
        span number of records: #{docs.length}
        table
            tr
                th Task
                    each task in docs
                        tr
                            td Do: [#{task}]


Что я уже пробовал:

Я попытался переименовать атрибут и посмотреть на БД в MongoVUE.

1 Ответов

Рейтинг:
5

Igor Entaltsev

Этот код исправил ситуацию:

app.use(bodyParser.urlencoded({ extended: true }));

req.body.task был undefined до тех пор extended был установлен на true для поддержки url-кодированных тел.