Ваш код нуждается в некоторой обработке ошибок и политике CORS. Поэтому я бы порекомендовал вам:
Убедитесь, что ваш бэкэнд запущен и работает
Вам нужно проверить порты на бэкенде.
Убедитесь, что база данных запущена и работает
Вам необходимо проверить, есть ли соединение с вашей базой данных. Нет необходимости подключаться к вашей базе данных каждый раз, когда вы делаете запрос. Поэтому лучше подключиться один раз.
Попробуйте результаты API через Postman или любой другой инструмент
Вам необходимо убедиться, что ваш бэкэнд доступен через любое другое клиентское приложение. Вы также можете открыть браузер и протестировать свой API, открыв ссылку в браузере 'http://localhost: 3000 / posts '
Активировать политику CORS для своего бэкэнда.
Для SPA требуется политика CORS, чтобы сделать запрос к бэкэнду. Для этого вы можете использовать библиотеку cors
npm или создавать собственные правила.
Использовать библиотеку выборок
Вы можете использовать fetch
, но это не поддерживается всеми браузерами. Было бы хорошо, чтобы Ax ios или любой другой инструмент запроса на вашем клиентском коде.
const cors = require('cors')
const app = express();
const mysql = require('mysql');
const connection = mysql.createConnection({
host: "localhost",
user: "yourusername",
password: "yourpassword"
});
connection.connect(function(err) {
if (err) throw err;
console.log("Connected!");
});
app.use(cors());
app.get('/posts', (req, res) => {
connection.query("SELECT * FROM 'some_table';", (err, results, fields) => {
if(err) throw err;
res.send(results);
});
});
app.listen(3000, (error) => {
if (err) throw err;
console.log(`App listening on port ${port}!`)
});