0

在我的路由中,我试图获取带有动态列的寄存器,而不是客户端请求像“ router.get('/get-by/'”这样的路由,而不是指定我的表的字段......

我这样使用

var field = req.body.field
    Territory
      .findOne({
        where: {
          field : req.params.id
        }
      })

但没有任何效果。谁能帮我?

4

2 回答 2

0

尝试这个。[场地]

var field = req.body.field
Territory
  .findOne({
    where: {
      [field] : req.params.id
    }
  })

我是这样使用的:

var column = dynamicTable[0]
var value = dynamicTable[1]  
HasReports.create({
    ReportId: req.body.id,
    [column]: value, // Changable for report type..
    ReportedById: req.user.id,
    reportHasTitle: req.body.reportHasTitle,
    reportDescription: req.body.description,
    reportedByIp: ip
})
于 2020-01-09T23:11:32.047 回答
0

我喜欢这个:

    router.get('/get-by/',
passport.authenticate('jwt',{ session: false}),
[
  query('field').not().isEmpty().withMessage('territory field is empty'),
  query('value').not().isEmpty().withMessage('territory value is empty'),
],
function(req, res) {
  var token = getToken(req.headers);
  if (token) {
    const errors = validationResult(req);
    if (!errors.isEmpty()) {
      return res.status(422).json({ errors: errors.array() });
    }
    let filters = {}
    filters[req.query.field] = req.query.value;

    Territory.
      findAll({
        where: filters
      })
      .then((territory) => {
        if (!territory) {
          return res.status(401).send({
            message: 'Territory not found.',
          });
        }
        res.json({ success: true, territory: territory });
      })
      .catch((error) => res.status(400).send(error));
  } else {
    return res.status(403).send({success: false, msg: 'Unauthorized.'});
  }
});
于 2020-01-16T18:19:10.667 回答