【问题标题】:Mongoose schema not showing in viewMongoose 架构未显示在视图中
【发布时间】:2022-02-23 04:32:50
【问题描述】:

我为必须在此视图上显示的支持票创建了一个架构,但它们实际上并未显示。数据显示在控制台中,所以我不太明白问题所在。

const mongosee = require ('mongoose');
const {Schema} = mongosee;

const AssignedTicketSchema = new Schema ({
    name: { type: String, required: true},
    pnumber: { type: String, required: true},
    problem: { type: String, required: true},
    support: {type: String, required: true},
    date: { type: Date, default: Date.now}
});

module.exports = mongosee.model('AssignedTicket', AssignedTicketSchema)

这些是路线


router.post('/tickets/assign-tickets', isAuthenticated, async (req, res) => {
  const {name, pnumber, problem, support}= req.body;
  const newAssignedTicket = new AssignedTicket({name, pnumber, problem, support})
  newAssignedTicket.user = req.user.id;
  await newAssignedTicket.save();
  req.flash('success_msg', 'Ticket assigned succesfully')
  res.redirect('/tickets/assigned-tickets');
});

router.get('/assigned-tickets', isAuthenticated, async (req, res) => {
  const assignedtickets = await AssignedTicket.find({user: req.user.id}).lean().sort({date: 'desc'});
  res.render('tickets/assigned-tickets', {assignedtickets} );
});

这就是风景


<div class="row">
    {{#each assignedtickets}}
    <div class="col-md-3">
        <div class="card">
            <div class="card-body">
                <h4 class="card-name d-flex justify-content-between align-items-center">
                    {{name}}
                </h4>
                <p>{{pnumber}}</p>
                <p>{{problem}}</p>
                <p>{{support}}</p>
            </div>
        </div>
    </div>
    {{else}}
        <div class="card mx-auto">
            <div class="card-body">
                <p class="lead">There are no support tickets yet.</p>
                <a href="/tickets/add" class="btn btn-success btn-block">Create a new support ticket</a>
            </div>
        </div>
    {{/each}}
</div>

【问题讨论】:

    标签: node.js express mongoose


    【解决方案1】:

    从此行

     res.redirect('/tickets/assigned-tickets');
    

    您是否希望重定向到此方法?

    router.get('/assigned-tickets', isAuthenticated, async (req, res) => {
      const assignedtickets = await AssignedTicket.find({user: req.user.id}).lean().sort({date: 'desc'});
      res.render('tickets/assigned-tickets', {assignedtickets} );
    });
    

    好像路径不完全匹配。

    另外,redirect 好像没有发送用户 id,也许你可以将它作为参数发送?

    查看其他答案How do I redirect in expressjs while passing some context?

    Express.js: Is it possible to pass an object to a redirect like it is with res.render?

    how to pass data and redirect in express

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-09
      • 1970-01-01
      • 2021-09-30
      • 1970-01-01
      • 2011-03-19
      • 1970-01-01
      • 2018-06-06
      • 2018-05-31
      相关资源
      最近更新 更多