Я работаю над REST API, который включает метод POST для создания новых виджетов. Данные, которые мне нужно отправить выглядит так:отправка данных ключа/значения через метод POST в API REST
key | value
widgetnum | 12345
02:00:00_03:00:00_mtwrfsn | [email protected]
12:00:00_15:00:00_mt | [email protected]
До сих пор, я не отправлял данные с помощью двух ключей в ТЕЛЕ:
widgetnum : 12345
tc : 02:00:00_03:00:[email protected],12:00:00_15:00:[email protected]
Как вы можете видеть в приведенном выше примере , ключ «tc» фактически содержит информацию для двух записей, просто разделенных запятой. Но вчера, когда я заглядывал в приложение Postman ... Я понял, что могу отправить несколько пар ключ/значение. Я не знаю, почему это никогда не щелкало раньше. (Такой нуб) В любом случае, теперь я понимаю, что я могу на самом деле это сделать:
widgetnum : 12345
02:00:00_03:00:00_mtwrfsn : [email protected]
12:00:00_15:00:00_mt : [email protected]
Вопросы
Это более эффективно изменить способ, которым я POST данные, насколько мой Javascript код обеспокоен? Так, например, сегодня, мой код выглядит следующим образом:
router.post('/', function(req, res, next) {
var widgetnum = req.body.widgetnum;
var tc = req.body.tc;
var tc_array = tc.split(",");
он же - я могу смотреть на мои данные, используя очень специфические имена ключей.
Однако, если я изменю способ отправки POST своих данных, я считаю, что мне нужно будет петли, чтобы найти все ключи.
Так что-то вроде этого:
router.post('/', function(req, res, next) {
//loop through req.body object.
for (var key in req.body) {
if (req.body.hasOwnProperty(key)) {
// add some logic here to test if the key is
// widgetnum or a tc type key.
console.log(key + " -> " + req.body[key]);
}
}
res.status(200).send('ok');
return;
});
Я прошу прощения, если это похоже на процессуальный вопрос - это возможно. Но если это плохая форма для POST нескольких записей tc в одной паре ключ/значение, я рад ее изменить. Возможно, есть более эффективный способ написать мой код javascript для поиска данных.
Спасибо.
Почему бы не использовать обозначенный формат ключа/значения, такой как JSON? Он широко поддерживается, а на стороне node.js, поскольку вы используете экспресс, он так же прост, как 'const bodyParser = require ('body-parser); app.use (bodyParser.json()); ' – DrakaSAN
спасибо за предоставление более подробной информации. Я буду google bodyParser.json и, возможно, найду примеры как для отправки данных, так и для их анализа. – Happydevdays
Вместо 'widgetnum: 12345 tc: 02: 00: 00_03: 00: 00_mtwrfsn_johndoe @ myemail.com, 12: 00: 00_15: 00: 00_mt_janedoe @ yahoo.com', отправьте '{ \t "widgetnum": 12345, \t "Т": \t { \t \t "02: 00: 00_03: 00: 00_mtwrfsn": [email protected], \t \t«12: 00: 00_15: 00: 00_mt ": [email protected] \t} }' – DrakaSAN