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, время: 01:30. |