Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Node.Js Express连接两个表_Node.js_Reactjs_Postgresql_Express - Fatal编程技术网

使用Node.Js Express连接两个表

使用Node.Js Express连接两个表,node.js,reactjs,postgresql,express,Node.js,Reactjs,Postgresql,Express,我在网络上四处寻找解决方案,但似乎没有一个与我相关的答案。所以我想在这方面得到一些帮助。这里有两个表需要连接,并在React文件中列出。游戏表和用户表,目前我只能显示游戏表。 Server/index.js const express = require("express"); const app = express(); const cors = require("cors"); const pool = require("./db&quo

我在网络上四处寻找解决方案,但似乎没有一个与我相关的答案。所以我想在这方面得到一些帮助。这里有两个表需要连接,并在React文件中列出。游戏表和用户表,目前我只能显示游戏表。

Server/index.js

const express = require("express");
const app = express();
const cors = require("cors");
const pool = require("./db");

//middleware
app.use(cors());
app.use(express.json()); //req.body

app.get("/af", async (req, res) => {

    try {
      const allTodos = await pool.query("SELECT game.*, users.* FROM users INNER JOIN game ON users.game_code = game.game_code;  ");
      res.json(allTodos.rows);
    } catch (err) {
      console.error(err.message);
    }
  });

Client/List.js
const List = () => {
const [af, setAF] = useState([]);
 const getTodos = async() => {
        try{
            const response = await fetch("http://localhost:5000/af");
            const jsonData = await response.json();
            setAF(jsonData);
        }catch(err){
            console.error(err.message);
        }
    }
    useEffect(() =>  {
        getTodos();
    }, []);
return(
       <Fragment>
           {" "}
       <table className="table mt-5 text-center">
    <thead>
      <tr>
        <th>game_code</th>
        <th>user_code</th>
     </tr>
</thead>

<tbody>
         {af.map(game => (
            <tr key = {game.game}>
                <td>{game.game_code}</td>
                <td>{game.game_location}</td>
  ))} 
    </tbody>
  </table>
       </Fragment>
export default List;
const List=()=>{
常量[af,setAF]=useState([]);
常量getTodos=async()=>{
试一试{
const response=等待获取(“http://localhost:5000/af");
const jsonData=await response.json();
setAF(jsonData);
}捕捉(错误){
控制台错误(错误消息);
}
}
useffect(()=>{
getTodos();
}, []);
返回(
{" "}
游戏代码
用户代码
{af.map(游戏=>(
{game.game_code}
{游戏。游戏位置}
))} 
导出默认列表;

不清楚您要的是什么,什么有效或无效。看起来您同时查询了游戏表和用户表,并使用游戏代码将它们连接起来。如果我没有弄错的话,您应该返回一个数据数组。这是问题吗?您无法成功连接这两个表吗?@Drewerese抱歉,我还是新手。什么时候我向Postman查询,我可以收到一个[]数组。但它没有内容。我还想在我的List.Js文件中显示它。是的,似乎您需要首先解决问题,查询数据库并验证您尝试在响应中发送的
allTodos
值。