2015-06-24 2 views
0

У меня есть форма, которую я создал с помощью Twitter Bootstrap, который размещает данные, которые я ввел в него неправильно, в мою базу данных MongoDB. Модель базы данных: ({date: 'date', link: 'string'}) и результат должен выглядеть следующим образом:Bootstrap форма отправки данных неверно в базу данных MongoDB

{ _id: 558a69c644c2a80985299594, 
    date: Mon Jul 03 1995 02:00:00 GMT+ 
    link: 'https://www.youtu.be.com' }, 

Но когда я представить данные из формы это то, что я получаю взамен:

{ _id: 558a69c644c2a80985299594,__v:0}, 

Когда я вручную вставить в сбор, кажется, сработал, но я хочу представить из формы.

Вот код для маршрутизатора, где обрабатывается действие POST:

var express = require('express'); 
var router = express.Router(); 
var mongoose = require('mongoose'); 
var Schema = mongoose.Schema; 

/* Database stuff */ 
//connect to the data store and the set up the database 
var db = mongoose.connection; 

//connect to the database 
mongoose.connect('mongodb://localhost/Mandela_Diaries/data'); 

//Create a model which connects to the schema and entries collection in the Mandela_Diaries database 
var Entry = mongoose.model("Entry", new Schema({date: 'date', link: 'string'}), "entries"); 

mongoose.connection.on("open", function() { 
    console.log("mongodb is connected!"); 
}); 

//The route for getting data for the database - GET form 
router.get("/", function(req, res) { 
    //Send the current entries to the page 
    Entry.find({}, function(err, entries) { 
     console.log(entries); 
     if(err) { 
      res.status(404).json({"error": "not found", "err":err}); 
      return; 
     } else { 
      //res.json(entries); 
      res.render('database', {title: 'database', entries: entries}); 
     } 
    }); 

}); 

router.post('/', function(req, res) { 
    //console.log(date, link); 
    //res.redirect('form') 
    var newEntry = new Entry({entries: {'date': req.body.date, 'link': req.body.link}}); 
    newEntry.save(function(err, entries){ 
     //console.log(entries); 
     //res.redirect('form'); 
     if (err !== null) { 
      res.status(500).json(err); 
     } else { 
      res.redirect('database'); 
     }; 
    }); 
}); 

module.exports = router; 

А вот код формы, который написан с использованием шаблона Джейд:

extends layout 

block content 
    .container 
     .row 
     .col-s-12 
      h1 The Mandela Diaries Database 
     .row 
     .col-s-4 
      h3 Add Entry 
     .row 
     .col-s-12 
      form.form-inline(method='post', action='/create') 
      .form-group 
       label(for='date') Date: 
       input#datepicker.form-control.datepicker(type='text', value='date') 
      .form-group 
       label(for='link') Link: 
       input#link.form-control(type='string', value='link') 
      button.btn.btn-default(type='submit') Submit 
     .row 
     p 
       | Format options: 
       br 
       select#format 
       option(value='mm/dd/yy') Default - mm/dd/yy 
       option(value='yy-mm-dd') ISO 8601 - yy-mm-dd 
       option(value='d M, y') Short - d M, y 
       option(value='d MM, y') Medium - d MM, y 
       option(value='DD, d MM, yy') Full - DD, d MM, yy 
       option(value="'day' d 'of' MM 'in the year' yy") With text - 'day' d 'of' MM 'in the year' yy 
     .row 
     #entries.col-s-12 
      ul 

      script(type'text/javascript', scrc='../public/js/script.js') 

Пожалуйста, помогите поскольку у меня заканчивается время в этом проекте.

Основной файл app.js ниже:

var express = require('express'); 
var path = require('path'); 
var favicon = require('serve-favicon'); 
var logger = require('morgan'); 
var cookieParser = require('cookie-parser'); 
var bodyParser = require('body-parser'); 

var routes = require('./routes/index'); 
var users = require('./routes/users'); 
var database = require('./routes/database'); 

var app = express(); 

// view engine setup 
app.set('views', path.join(__dirname, 'views')); 
app.set('view engine', 'jade'); 

// uncomment after placing your favicon in /public 
//app.use(favicon(__dirname + '/public/favicon.ico')); 
app.use(logger('dev')); 
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ extended: false })); 
app.use(cookieParser()); 
app.use('/public', express.static(__dirname + '/public')); 
app.use(express.static(path.join(__dirname, 'public'))); 
app.use('public/js', express.static(path.join(__dirname + 'public/js'))); 
app.use('public/css', express.static(path.join(__dirname + 'public/css'))); 

app.use('/', routes); 
app.use('/users', users); 
app.use('/database', database) 
app.use('/create', database) 

// catch 404 and forward to error handler 
app.use(function(req, res, next) { 
    var err = new Error('Not Found'); 
    err.status = 404; 
    next(err); 
}); 

// error handlers 

// development error handler 
// will print stacktrace 
if (app.get('env') === 'development') { 
    app.use(function(err, req, res, next) { 
    res.status(err.status || 500); 
    res.render('error', { 
     message: err.message, 
     error: err 
    }); 
    }); 
} 

// production error handler 
// no stacktraces leaked to user 
app.use(function(err, req, res, next) { 
    res.status(err.status || 500); 
    res.render('error', { 
    message: err.message, 
    error: {} 
    }); 
}); 


module.exports = app; 

app.listen(8080); 

console.log("The server has started"); 
+0

Что делает ваш основной файл выглядит? Тот, где вы создаете свой объект приложения? –

+0

Эй, Бидхан, я только что добавил. – Siya

ответ

0

Я думаю, что проблема с шаблоном нефрита. Вы не указываете атрибут имени для своих элементов ввода. Попробуйте добавить их

input#link.form-control(type='string', name='link') 

и

input#datepicker.form-control.datepicker(type='text', name='date') 

Edit:

В вашем почтовом маршруте, попробуйте изменить соответствующую строку в этой var newEntry = new Entry(req.body);

+0

Спасибо. Я все равно получаю тот же результат. Что-то отправляется в базу данных, но это еще не дата и не ссылка. Я также подозреваю, что это связано с шаблоном нефрита и, возможно, с кодом в маршрутизаторе ... – Siya

+0

Что размещается в базе данных? –

+0

Это {_id: 558a69c644c2a80985299594, __ v: 0}, пустая запись с уникальным идентификатором – Siya

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