Node.js 使用Handlebar表单以mongo/mongoose模式中的数组为目标

Node.js 使用Handlebar表单以mongo/mongoose模式中的数组为目标,node.js,mongodb,mongoose,handlebars.js,Node.js,Mongodb,Mongoose,Handlebars.js,。我知道我的架构目标不正确,因为我得到了一个空数组。我想在staff数组中推送我的输入值。关于输入字段模板的Handlebar文档似乎非常有限。谢谢 我的模式: var docketSchema = new Schema({ companyName: string, address: string, staff: [{ manager: String, receptionist: String }] }); 我的把手模板: <div

。我知道我的架构目标不正确,因为我得到了一个空数组。我想在staff数组中推送我的输入值。关于输入字段模板的Handlebar文档似乎非常有限。谢谢

我的模式:

var docketSchema = new Schema({
  companyName: string,
  address: string,
  staff: [{ manager: String, 
            receptionist: String 
        }]
});
我的把手模板:

<div class="form-group">
    <input type="text" id="address" name="address" required value="{{input.address}}">
</div>
<div class="form-group">
    <input type="text" id="companyName" name="companyName" required value="{{input.companyName}}">
</div>
<div class="form-group">
    <input type="text" id="manager" name="manager" required value="{{input.staff.manager}}">
</div>
<div class="form-group">
    <input type="text" id="receptionist" name="receptionist" required value="{{input.staff.receptionist}}">
</div>
我的控制台:

[ { companyName: 'Acme',
    address: 'New York',
    staff: [] } ]
我的addDocket方法:

exports.addDocket = function(docket, next) {
    var newDocket = new Docket({
      companyName: docket.companyName,
      address: docket.address,
      staff: docket.staff
    });

    newDocket.save(function(err) {
      next(null);
    });
};

在把手模板中,尝试按如下方式创建具有数组的表单元素:

<div class="form-group">
    <input type="text" id="address" name="address" required value="{{input.address}}">
</div>
<div class="form-group">
    <input type="text" id="companyName" name="companyName" required value="{{input.companyName}}">
</div>
<div class="form-group">
    <input type="text" id="manager" name="staff[manager]" required value="{{input.staff.manager}}">
</div>
<div class="form-group">
    <input type="text" id="receptionist" name="staff[receptionist]" required value="{{input.staff.receptionist}}">
</div>


你能告诉我们你是如何实现addDocket()方法的吗?@chridam,给你:router.get('/dockets',function(req,res,next){Docket.find({},function(err,dockets){var model=dockets.map(function(doc){return{title:'List of Dockets',companyName:doc.companyName,address:doc.address,staff:doc.staff};});console.log(model);res.render('Dockets/index',{“doclist”:model,“firstName”:req.user.firstName});});@chridam,但这不是无关紧要的,因为表单提交没有从一开始就正确地提交到模式?@chridam,这是我的addDocket方法:exports.addDocket=function(docket,next){var newDocket=newDocket({companyName:docket.companyName,address:docket.address,staff:docket.staff});newDocket.save(函数(err){next(null);});};请使用链接将这些详细信息添加到您的问题中,而不是添加到注释中。谢谢,但我仍然得到一个空白数组。也许这就是方法和模式的通信方式?
<div class="form-group">
    <input type="text" id="address" name="address" required value="{{input.address}}">
</div>
<div class="form-group">
    <input type="text" id="companyName" name="companyName" required value="{{input.companyName}}">
</div>
<div class="form-group">
    <input type="text" id="manager" name="staff[manager]" required value="{{input.staff.manager}}">
</div>
<div class="form-group">
    <input type="text" id="receptionist" name="staff[receptionist]" required value="{{input.staff.receptionist}}">
</div>