如何发送 JSON 数据而不是将其记录到控制台

Bak*_*eeb 3 javascript node.js express

我正在使用 Flutter 中的食品订购应用程序和 Express.js 中的 API 使用 MySql 作为数据库。我能够连接到数据库并接收 JSON 数据和 console.log() 它们,但我不知道如何将它们发送到应用程序。任何帮助将不胜感激。

这是代码。

const express = require('express');
const router = express.Router();
const mysql = require('mysql');

var pool = mysql.createPool({
    host: 'localhost',
    user: 'root',
    password: '',
    database: 'ala_ainy_db',
    connectionLimit: 10,
});

router.get('/', (req, res, next) => {

    pool.getConnection(function (err, conn) {
        if (err) return;
        conn.query('SELECT * FROM restaurants', function (err, rows) {
            if (err) {
                conn.release();
                console.log('failed');
            }
            rows.forEach((row) => {
                console.log(`ID: ${row.id}, Name: ${row.name}`);
            });
            conn.release();
        })
    });
});
Run Code Online (Sandbox Code Playgroud)

Soh*_*raf 5

您可以使用 expressres.json()res.send()方法发送数据作为响应。

res.json()发送一个 JSON 响应。此方法发送一个响应(具有正确的内容类型),该响应是使用JSON.stringify()转换为 JSON 字符串的参数。

res.send()发送 HTTP 响应。body 参数可以是一个 Buffer 对象、一个字符串、一个对象或一个数组。

例子:

const express = require('express');
const router = express.Router();
const mysql = require('mysql');

var pool = mysql.createPool({
    host: 'localhost',
    user: 'root',
    password: '',
    database: 'ala_ainy_db',
    connectionLimit: 10,
});

router.get('/', (req, res, next) => {

    pool.getConnection(function (err, conn) {
        if (err) return;
        conn.query('SELECT * FROM restaurants', function (err, rows) {
            if (err) {
                conn.release();
                console.log('failed');
            }
            conn.release();
            res.status(200).json(rows);
            
        })
    });
});
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,我之前已经回复了,我的问题已经解决了 (2认同)