如何在Node.js中获取两个表数据,对象在另一个对象中

Posted

技术标签:

【中文标题】如何在Node.js中获取两个表数据,对象在另一个对象中【英文标题】:How to get two tables data in Node.js with object inside other object 【发布时间】:2019-08-24 03:37:55 【问题描述】:

我有两张表,我需要这种格式的数据。这怎么可能?

My Tables

所需输出


  "id":"1",
  "name":"akhil",
  "pics": [
    
      "pic1": "123.jpg",
      "pic2": "123.jpg"
    
  ]

一般我用它来从单个表中获取数据

const express = require('express');
const app = express();
const jwt = require('jsonwebtoken');
const bcrypt = require('bcryptjs');
const config = require('./config');

var VerifyToken = require('./VerifyToken');

const mysql      = require('mysql');

app.use(express.json());
const connection = mysql.createConnection(
   host     : 'localhost',
   user     : 'root',
   password : 'password',
   database : 'sample'
);
    app.get('/usersdata', VerifyToken, (req, res) => 
       let id = req.userId;
       console.log(req.userId);
       connection.query("select * from users", function (error, results, fields) 
          if (error) throw error;
          else 
             res.send("result": results);
          
       );
    )

【问题讨论】:

什么是connection.query?你用什么模块来访问你的数据库? 我正在使用 mysql @JordanRunning 【参考方案1】:

我的解决方案:

app.get('/usersdata', (req, res) => 
   connection.query("select u.id, u.name, p.pic1, p.pic2 from users u, pics p where u.usersid=p.id", function (error, results, fields) 
      if (error) throw error;
      else 
         let data = results;
         let newResult = ;
         results.map(row => 
            if(newResult[row.id]) 
               newResult[row.id].pics.push(row.pic1, row.pic2)
             else 
               newResult[row.id] =  id: row.id, name: row.name, pics: [row.pic1, row.pic2] ;
            
         )
         res.send( "result": Object.values(newResult) );
      
   );
)

【讨论】:

【参考方案2】:

我会使用 ORM 而不是自己编写查询。检查此link 用于项目节省了大量时间并且代码更干净。

【讨论】:

查看link 在 Sequelize 中加入两个表 这是我的客户要求,我无法将其更改为某些 ORM @Bharath

以上是关于如何在Node.js中获取两个表数据,对象在另一个对象中的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Node.js 中使用 JSON 对象更新 mySQL 表?

如何在两个不同的主机中拥有两台服务器(django 和 node.js)并相互通信?

Node.js - 如何使用 graphql 获取关联的模型数据?

如何在 Node.JS 中进行多个查询(构建数据库)?

如何在Node.js中合并两个复杂对象

Node.js - 在另一个方法完全执行后调用一个方法