无法粘贴数据库nodejs的输入值

时间:2018-01-20 18:14:04

标签: node.js forms express handlebars.js

我有一个竞赛表格和一个名为competitionforms

的集合

enter image description here

我的表单使用以下路由

// competition form details
router.get('/dashboard/users/forms/competition-form/:id', ensureAuthenticated, (req, res) => {
  CompetitionForm.find(req.params.id, function(err, competition){
    res.render('dashboard/users/forms/competition-form.hbs', {
      pageTitle: 'Competition Form',
      users: competition
    });
  });
});

// competition form details post
router.post('/dashboard/users/forms/competition-form/:id', (req, res) => {
  CompetitionForm.findOneAndUpdate({ _id: req.params.id }, req.body, {upsert:true}, (err, competition) => {
    if (err) {
      console.log(`Error saving data:  ${err}`);
      return res.send('Error saving data');
    }

    res.redirect('/dashboard');
    console.log(req.body);
  });
});

// competition form edit
router.get('/dashboard/users/forms/competition-form/edit/:id' , ensureAuthenticated, (req, res) => {
  CompetitionForm.find(req.params.id, function(err, competition){
    res.render('dashboard/users/forms/competition-form-edit.hbs', {
      pageTitle: 'Competition Form Edit',
      users: competition
    });
  });
});

// competition form edit
router.post('/dashboard/users/forms/competition-form/edit/:id', (req, res) => {
  CompetitionForm.findOneAndUpdate({ _id: req.params.id }, req.body, (err, competition) => {
    if (err) {
      console.log(`Error saving data:  ${err}`);
      return res.send('Error saving data');
    }

    res.redirect('/dashboard');
    console.log(req.body);
  });
});

现在我想传递表单数据,以便用户在返回表单时可以看到他们输入的内容。

表单正在使用用户ID

<form action="/dashboard/users/forms/competition-form/{{user.id}}" method="post">

<input type="text" class="form-control" name="schoolName" placeholder="Enter school name" value="{{competition.schoolName}}"

这是我的竞赛表格模型

const express = require('express');
const mongoose = require('mongoose');

var app = express();

if (app.get('env') === 'production') {
  mongoose.connect(process.env.MONGODB_URI, { useMongoClient: true });
} else {
  mongoose.connect('mongodb://localhost/pol-development', { useMongoClient: true });
}

var db = mongoose.connection;
mongoose.Promise = global.Promise;

db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function() {
  console.log("Connection has been established");
});

var CompetitionFormSchema = mongoose.Schema({
  schoolName: String,
  competitionDate: String,
  competitionTime: String,
  competitionVenue: String,
  competitionTotalOfStudents: Number,
  competitionTotalParticipated: Number,
  competitionTotalPersonnel: Number,
  competitionJudge1Name: String,
  competitionJudge1Telephone: String,
  competitionJudge1Email: String,
  competitionJudge2Name: String,
  competitionJudge2Telephone: String,
  competitionJudge2Email: String,
  competitionJudge3Name: String,
  competitionJudge3Telephone: String,
  competitionJudge3Email: String,

  // admin fields
  competitionRequiredPhotos: Boolean,
  competitionRequiredCertifications: Boolean
});

var CompetitionForm = module.exports = mongoose.model('CompetitionForm', CompetitionFormSchema);

我不确定我在这里可以尝试的其他组合。

我期待的是

当用户最初注册时,他们将填写此表单,一旦提交,表单将属于用户,因此传递了用户ID。

然后表单将值保存到数据库(它当前正在执行),然后提交的用户将能够返回到表单以查看其内容。

出了什么问题?

由于我希望用户能够看到传递的数据,我想通过从数据库中获取值并使用value属性将它们传递到表单中来显示它。

这是我目前无法做的竞赛形式的数据`似乎没有传回形式。

0 个答案:

没有答案