繁体   English   中英

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

[英]How to send JSON data instead of logging it to the console

我正在使用 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();
        })
    });
});

您可以使用 express res.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);
            
        })
    });
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM