#javascript #mysql #node.js
#язык JavaScript #mysql #node.js
Вопрос:
Я пытаюсь взять значение, которое вставлено в поля имени и фамилии, а затем взять его и вставить в серверную часть базы данных MySQL, которую я запускаю с помощью RestAPI. Что мне не хватает, чтобы имя и фамилия были фактически преобразованы в [имя] и [фамилия], которые будут использоваться в сценарии MySQL
Код таблицы такой
lt;div class="superhero"gt; lt;h1gt;Lets add our first name lt;/h1gt; lt;form action="/add_user" method="post"gt; lt;input type = "text" firstname = "firstname"gt; lt;h1gt;Lets add our last name lt;/h1gt; lt;form action="/add_user" method="post"gt; lt;input type = "text" lastname = "lastname"gt; lt;input type="submit" class="btn btn-primary"gt; lt;/formgt;
Затем это передается на сервер NodeJS с помощью этой команды
app.post('/add_people', function(req, res){ axios.get('http://127.0.0.1:5000/api/adduser') .then((response)=gt;{ var restlist = response.data.results; console.log(restlist); // Now we will execute the results in the page named thanks }); });
Затем в конце он будет доставлен в RestAPI, который использует этот маршрут
@app.route('/api/adduser', methods = ['POST']) # This is a post method because the user needs to be able to add info def adding_stuff(): request_data = request.get_json() # Gets the info from the table and converts to JSON format new_fname = request_data['firstname'] new_lname = request_data['lastname'] conn = create_connection("", "", "", "") sql = "INSERT INTO restaurantusers (firstname, lastname) VALUES ('%s', '%s');" % (new_fname, new_lname) # This sql statement will then be uploaded to the databse to add a new record execute_query(conn, sql) # This will execute the query return 'Post worked'
Извините, если то, о чем я спрашиваю, звучит действительно сложно. Профессор слишком быстро ходит по классу, и я уже некоторое время пытаюсь выяснить, как это сделать, но безуспешно.
UDATE: Позже я изменил два пункта, как было предложено. Маршрут такой
app.post('/add_people', function(req, res){ axios.post('http://127.0.0.1:5000/api/adduser') .then((response)=gt;{ var restlist = response.data.results; console.log(restlist); // Now we will execute the results in the page named thanks }); });
и форма теперь
lt;form action="/add_people" method="post"gt; lt;input type = "text" firstname = "firstname"gt; lt;h1gt;Lets add our last name lt;/h1gt; lt;input type = "text" lastname = "lastname"gt; lt;input type="submit" class="btn btn-primary"gt; lt;/formgt;
Я получаю ошибку, что
}, isAxiosError: true, toJSON: [Function: toJSON] }
а также эта ошибка в окне RestAPI
TypeError: 'NoneType' object is not subscriptable
Комментарии:
1. В дополнение к ответу вы делаете
GET
вызовhttp://127.0.0.1:5000/api/adduser
, но ваш 3-й фрагмент кода/api/adduser
аннотирован как метод POST. Когда вы сделаете свойPOST
запросaxios
, вам нужно будет указать данные из формы (для этого вы можете использоватьreq
объект).2. хорошо, спасибо, я собираюсь поработать с rn, и я исправлю это позже, и надеюсь, что это сработает! Спасибо
3. Я действительно обновил код и отредактировал сообщение, чтобы показать ошибку, которую я получил. если я хочу записать ответ, нужно ли мне добавлять axis.get сразу после axis.post?
4. вы можете проверить ответ на свой запрос http post. Если вы сделаете еще один, например, получите, это будет отдельный независимый запрос.
5. Я получаю эту ошибку }, isAxiosError: true, toJSON: [Функция: toJSON] }
Ответ №1:
Похоже, в форме есть две ошибки.
- Вам не нужно разбивать имя и фамилию на две отдельные формы.
- Маршрут
add_user
не совпадает с вашим почтовым маршрутом.
Возможно, вам потребуется внести эти изменения
lt;div class="superhero"gt; lt;h1gt;Lets add our first name lt;/h1gt; lt;form action="/api/adduser" method="post"gt; lt;input type = "text" firstname = "firstname"gt; lt;h1gt;Lets add our last name lt;/h1gt; lt;input type = "text" lastname = "lastname"gt; lt;input type="submit" class="btn btn-primary"gt; lt;/formgt;
Комментарии:
1. Я получаю эту ошибку, когда вносил изменения в форму. Это та же ошибка, которую я получил, как и раньше
2. Вы не отправляете данные в запросе post » axios.post (» 127.0.0.1:5000/api/adduser «, тело)». Пожалуйста, добавьте текст к почтовому запросу, без отправки текста вы не можете ожидать правильного ввода / вывода.
3. Хорошо, что делает часть тела? извините, я все еще новичок в этом деле. Потому что в нем говорится, что тело не определено. Является ли это и синтаксический анализатор тела одним и тем же