— Как реализовать проверку req.body.param

#node.js

#node.js

Вопрос:

Вопрос новичка здесь, пожалуйста. я пытаюсь проверить значение MAXDEPTH ниже. если оно больше x или меньше y, выполните функцию updateMaxdepth() . В противном случае выводится ошибка, указывающая, что входное значение выходит за пределы. У меня установлен экспресс-валидатор. Просто не могу понять, как реализовать в приведенном ниже коде. Спасибо за вашу помощь!!

============================================================

 app.post('/submit', urlencodedParser, function(req, res) {
var QMGR      = req.body.qmgr;
var APP_ID    = req.body.app_id;
var QUEUE     = req.body.queue;
var CURDEPTH  = parseInt(req.body.curdepth);
var MAXDEPTH  = parseInt(req.body.maxdepth);

var bash = {cmd_1: `su mqm -c dspmq | grep ${QMGR}`,
cmd_2: `su mqm -c 'echo "dis queue(${QUEUE}) CURDEPTH MAXDEPTH" | runmqsc ${QMGR}' | grep MAX |grep -v dis| perl -lanF"[()]" -e 'print $F[1]'`,
cmd_3: `su mqm -c 'echo "dis queue(${QUEUE}) CURDEPTH MAXDEPTH" | runmqsc ${QMGR}' | grep MAX |grep -v dis| perl -lanF"[()]" -e 'print $F[3]'`,
cmd_4: `su mqm -c 'echo "alt ql(${QUEUE}) maxdepth(${MAXDEPTH})" | runmqsc ${QMGR}'`}

let transport = nodemailer.createTransport({host: 'smtp.qcorpaa.aa.com',
port: 25,
//port: 587,
secure: false,
tls: {rejectUnauthorized: false}
//tls: { ciphers:'SSLv3' }});

function updateMaxdepth() {var child = cp.exec(bash.cmd_4function(err, stdout, stderr) {if (stdout.includes('changed')){var mailOptions = {
from: 'root@esmqst15',
to: 'DL_Enterprise_MQ@aa.com',
subject: 'Maxdepth Updated for queue ' req.body.queue ' on QMGR ' req.body.qmgr,
text: 'Maxdepth Updated for queue ' req.body.queue ' to ' req.body.maxdepth ' on QMGR ' req.body.qmgr ' by App_ID ' req.body.app_id
};
console.log(mailOptions);
transport.sendMail(mailOptions, function(err, info) {
if (err) {
  console.log(err)
} else {
  console.log(info);
}}}});
  

    

Комментарии:

1. Вы можете сделать это в функции с помощью оператора if: if(req.body.param > x || req.body.param < y) { //do something } else { return reject } если вам нужен более подробный ответ, дайте мне знать

2. Спасибо, Элнатан.. итак, я подумал о том, чтобы вставить условие if..else и, если true, выполнить функцию updateMaxdepth() . Вот где я не уверен, как это сделать .. если вы можете показать мне пример кода.. Спасибо

Ответ №1:

пример кода (должен выглядеть примерно так)

 app.post('/submit', urlencodedParser, function(req, res) {
var QMGR      = req.body.qmgr;
var APP_ID    = req.body.app_id;
var QUEUE     = req.body.queue;
var CURDEPTH  = parseInt(req.body.curdepth);
var MAXDEPTH  = parseInt(req.body.maxdepth);

var bash = {cmd_1: `su mqm -c dspmq | grep ${QMGR}`,
cmd_2: `su mqm -c 'echo "dis queue(${QUEUE}) CURDEPTH MAXDEPTH" | runmqsc ${QMGR}' | grep MAX |grep -v dis| perl -lanF"[()]" -e 'print $F[1]'`,
cmd_3: `su mqm -c 'echo "dis queue(${QUEUE}) CURDEPTH MAXDEPTH" | runmqsc ${QMGR}' | grep MAX |grep -v dis| perl -lanF"[()]" -e 'print $F[3]'`,
cmd_4: `su mqm -c 'echo "alt ql(${QUEUE}) maxdepth(${MAXDEPTH})" | runmqsc ${QMGR}'`}

let transport = nodemailer.createTransport({host: 'smtp.qcorpaa.aa.com',
port: 25,
//port: 587,
secure: false,
tls: {rejectUnauthorized: false}
//tls: { ciphers:'SSLv3' }});

if(req.body.param > x ||  req.body.param < y) {
 updateMaxdepth()
} else {
 return res.status(400).json({msg:'not valid'})
}

function updateMaxdepth() {var child = cp.exec(bash.cmd_4, function(err, stdout, stderr) {if (stdout.includes('changed')){var mailOptions = {
from: 'root@esmqst15',
to: 'DL_Enterprise_MQ@aa.com',
subject: 'Maxdepth Updated for queue ' req.body.queue ' on QMGR ' req.body.qmgr,
text: 'Maxdepth Updated for queue ' req.body.queue ' to ' req.body.maxdepth ' on QMGR ' req.body.qmgr ' by App_ID ' req.body.app_id
};
console.log(mailOptions);
transport.sendMail(mailOptions, function(err, info) {
if (err) {
  console.log(err)
} else {
  console.log(info);
}}}});