2017-02-21 3 views
1

Вот случай - у меня есть приложение node.js + Express с использованием базы данных MySQL. Я читаю данные из таблицы (пример Employee). Я покажу необходимые данные в форме HTML. Таким образом, имя сотрудника, адрес электронной почты, телефон, адрес и т. Д.Node.js Express POST только изменяет входные данные на маршрутизатор

В форме пользователь может обновить все или выбранные поля и нажать «отправить», чтобы обновить запись.

На обновление Звоню маршрутизатор и прочитать форму входа, используя тело-анализатор:

<form role="form" action="/employee/update" method="post"> 
    Name : <input type="text" name="ename"/> 
    Email : <input type="email" name="empEmail"/> 
    . 
    . 
    . 
</form> 

Теперь пользователь может либо изменить все входы или только один. Однако, когда я делаю обновление sql, я хочу только обновить поля, которые были изменены.

мое текущее решение

Что я могу сделать прямо сейчас, что у меня есть скрытый вход в форме, которая хранит имя любого входа, который был изменен пользователем. Таким образом, в моем публичном js-файле код jquery с заменой ввода считывает свойство «name» измененного ввода и создает строку с разделителями-запятыми, которая затем присваивает скрытому вводу значение.

Таким образом, если пользователь изменяет имя и адрес электронной почты, скрытый вход будет выглядеть следующим образом:

<input type="hidden" name="FormHiddenInput" value="ename,empEmail"/> 

Таким образом, когда пользователь нажимает кнопку отправить, на мой маршрутизатор я просто:

var fieldName = req.body.FormHiddenInput; 

Тогда Я разделил его и извлек имена отдельных полей, которые были изменены, и снова повторил команду req.body.

Этот процесс работает нормально, но мне это не нравится. Требуется слишком много кода, а циклы пройдут.

Есть ли другой способ получить имена входов/textarea/select и т. Д., Которые были фактически изменены в форме непосредственно в маршрутизаторе?

ответ

0

Вы должны обновить всю строку. Это уменьшает многословность и сложность кода, а накладные расходы незначительны.

mysql UPDATE statement - overhead for same values?

+0

Итак, только что прочитал все тело и обновить набор – codeinprogress

+0

Да, это правильно. – 0019

+0

спасибо, я поеду и обновлю свой код. – codeinprogress

Смежные вопросы