Я следую этому руководству от Hakernoon , чтобы настроить Node.js с MySQL, используя мою машину в качестве локального сервера. Я использую несколько разных инструментов, но они не кажутся проблемой. Я использую:
- Ubuntu 16.04
- Node.js
- MySQL Верстак (он использует Homebrew, потому что его Ма c)
- MySQL
- knex. js
- Express
* (Ubuntu и Workbench - единственные различия)
Подводя итог, весь урок работает хорошо, за исключением случаев, когда я дохожу до части «Логин». Здесь мы создаем форму для ввода имени пользователя и пароля, делая запросы POST
. Затем, если все в порядке, возвращается 200 status
, в противном случае отображается сообщение о том, что вход не выполнен. А вот и проблемы. Каждый раз, когда я пытаюсь войти в систему (даже если я уверен, что учетные данные верны и зная, что этот пользователь хранится в базе данных), он сообщает мне, что вход не выполнен.
При проверке в инструменте проверки браузера он показывает Fail to load resources: the server responded with a status of 404 (Not found)
. Это также указывает на то, что проблема заключается в функции fetch()
, которую я использую в своей функции post
для выполнения запросов POST
.
Я проверил документацию по fetch()
, но это не дает особых разъяснений. , Также я попытался связаться с автором учебника, и я не получил ответа. Что я делаю не так с fetch, чтобы дать мне статус 404?
Кроме того, каждый раз, когда я создаю нового пользователя (также запрос POST
), он делает это без проблем, и я вижу его в база данных в MySQLWorkbench.
Это файл (приложение. js) с кодом для создания пользователей и логин:
const CreateUser = document.querySelector('.CreateUser')
CreateUser.addEventListener('submit', (e) => {
e.preventDefault()
const username = CreateUser.querySelector('.username').value
const password = CreateUser.querySelector('.password').value
post('/createUser', { username, password })
})
const Login = document.querySelector('.Login')
Login.addEventListener('submit', (e) => {
e.preventDefault();
const username = Login.querySelector('.username').value
const password = Login.querySelector('.password').value
post('/login', {username, password})
.then(({status}) => {
if(status === 200)
alert('login success')
else
alert('login failed')
})
})
function post (path, data) {
return window.fetch(path, { <========= Here is where the browser shows the problem
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify(data)
})
}
*** Я не публикую остальные код, чтобы не сделать его слишком длинным, если нужна дополнительная информация, дайте мне знать). Спасибо!