NodeJS,Express,Sequelize - 如何使用bulkCreate动态更改插入数量?

时间:2017-03-22 18:11:19

标签: javascript node.js express sequelize.js ejs

大家好,我正在为一个项目使用Node JS,Express JS,Sequelize和EJS Templating制作应用程序。该应用程序旨在允许员工为其团队成员留下反馈。现在我在应用程序中有功能,可以将我想要的数据从数据库显示到视图中。我也可以发布单个插入,例如 - 作为管理员,发送请求user1为user2留下反馈。

所以,我可以做GET和POST(单个插入)但是我的问题是,如果问题因角色等而有所不同,我是否打算为这个反馈表做一个POST?

e.g。开发人员可以有10个问题,产品所有者可以有8个问题,而且每个问题都不同。

module.exports.questions = function(req, res){
    var models = require('../app/models');
    var db = require('../app/models/index.js');
    var FeedbackQuestions = models.FeedbackQuestions;
    var express = require('express');

    models.FeedbackQuestions.findAll({
        where :  { role : req.user.role}
    }).then(function(questions){
        res.render('selfform.ejs', {
            page_title : 'Self-Assessment',
            questions : questions,
            user : req.user
        });
    });
};

这就是我如何渲染文件,并将数据传递给它。这就是我如何使用EJS视图中传入的数据。

<tbody>
<% for (var i=0; i < questions.length; i++){ %>
<tr>
    <td><%=questions[i].question%></td>
    <td><%=questions[i].description%></td>
    <td> user selection rating  </td
</tr>
<% } %>
</tbody>

因此,例如,我显示了10个问题(对于具有不同角色的员工,可能会有更多问题)。

module.exports.insertSelfFeedback = function (req, res) {
    var models = require('../app/models');
    var db = require('../app/models/index.js');
    var Feedback = models.Feedback;
    var express = require('express');
    var selfform = require('../views/selfform.ejs');
    var input = JSON.parse(JSON.stringify(req.body));

    models.Feedback.bulkCreate([

        {
            fromuser: req.user.username,
            touser: req.user.username,
            rating: input.rating,
            questionnumber: input.questionnumber,
            period: input.period
        }

    ]).then(function () {
        res.redirect('/selfassessment');
        console.log(input);
        return models.Feedback.findAll();
    }).then(function (feedback) {

        console.log(feedback);
    })
};

我创建了上面的函数来使用Sequelize的bulkCreate,但是如何使用动态范围的插入? 感谢

0 个答案:

没有答案