react.js map, что то не фурычет а должно
есть таблица с тремя параметрами надо вывести
вот сервер 100% работает провнрял
const express=require('express');
const mysql=require('mysql');
const cors=require('cors');
const app=express();
app.use(cors());
const db=mysql.createConnection({
host:"localhost",
user:'root',
password:'',
database:'shop'
});
app.get('/',(req,res)=>{
return res.json('hello world!!');
});
app.get('/users',(req,res)=>{
const sql="SELECT * FROM `users`";
db.query(sql,(err,data)=>{
if (err) return res.json(err);
return res.json(data);
})
});
app.listen(8081,()=>{
console.log("server working 8081");
})
а клиент выдает всего лишь хелло ворлд
import React,{useEffect,useState} from 'react'
import './App.css';
function App() {
const [data,setData]=useState([]);
useEffect(()=>{
fetch('https://localhost:8081/users')
.then(res=>res.json())
.then(data=>console.log(data))
.catch(err=>console.log(err));
},[])
return (
<div>
Hello world!!!11
{data.map((d)=> (
<div>
{d.userName}
{d.userHash}
{d.userSalt}</div>
))}
</div>
);
}
export default App;
|
Цитата:
Если на том же сервере - так он и выдает только Цитата:
|
Так адрес указан users, и выдает он Hello world!!!11
|
riaron86, тогда поменяй роуты.
Сначала app.get('/users', ... Потом app.get('/', ... |
Не помогло
|
Там после запроса данных эти самые данные выводятся только в консоль, оставляя state-переменную не у дел.
С чего что-то еще на странице отобразится то должно? |
Цитата:
|
в таблице users в базе shop есть данные, при наборе localhost:8081/users они видны но при запуске реакт не показывает
|
Цитата:
Цитата:
Единички только компонентом выводятся, значит он смотрит не консоль, а именно на саму страницу в браузере. riaron86, после запроса данные в state-переменную data засунь, а не в консоль их выводи и будет тебе счастье. |
riaron86, замени свой
Цитата:
.then(data=>setData(data)) |
в консоли при коде без изменений выдает
Download the React DevTools for a better development experience: https://react.dev/link/react-devtools :8081/users:1 Failed to load resource: net::ERR_SSL_PROTOCOL_ERROR :8081/users:1 Failed to load resource: net::ERR_SSL_PROTOCOL_ERROR localhost/:1 Unchecked runtime.lastError: A listener indicated an asynchronous response by returning true, but the message channel closed before a response was received localhost/:1 Uncaught (in promise) Error: A listener indicated an asynchronous response by returning true, but the message channel closed before a response was received [NEW] Explain Console errors by using Copilot in Edge: click to explain an error. Learn more вот данные в базе 1 fvdwfvsrbgbrgbebrebgr3bg3rwbg3rwe Vova megaPupper 2 aethqwrtgwgdhjmdtne5st4trj65erzdzxnsynrtx Vasya ssupper 3 smndnjkmd,kzs,kssksk Petya pupper |
riaron86, отправляй запрос не на https://localhost:8081, а на http://localhost:8081
|
получилось спасибо, а что надо делать чтобы получить на https?
|
riaron86, установить сертификат на localhost и научить приложение на nodejs с ним работать либо спрятать nodejs за revers proxy, который в свою очередь будет уметь в ssl.
|
| Часовой пояс GMT +3, время: 20:05. |