我正在尝试学习node.js,并且试图将JSON发送到浏览器时遇到了麻烦,我没有尝试使用REST服务,因为显然没有发送JSON,它没有出现在邮递员中。 / p>
这是我的代码:
数据库连接池
const mysql = require('mysql');
const pool = mysql.createPool({
host: "localhost",
database: "dbname",
user: "root",
password: "",
debug: true
});
module.exports.pool = pool;
索引
const Joi = require('joi');
const connections = require('./connections')
const express = require('express');
const app = express();
app.use(express.json());
function getClients() {
return new Promise((resolve, reject) => {
connections.pool.getConnection((error, connection) => {
connection.query("select * from clientes", (error, rows) => {
if(error) {
reject(new Error);
}
else {
resolve(JSON.stringify(rows));
}
})
connection.release();
})
});
}
app.get('/', (req, res) => {
getClients().then((rows) => {console.log(rows)})
.catch(err => err);
console.log(res);
res.end();
});
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => console.log(`listening on port ${PORT}`));
在这一部分:
getClients().then((rows) => {console.log(rows)})
它在末尾记录了正确的JSON响应,但是引起了我极大的注意,我在JSON字符串之前收到了非常长的服务器响应。
当我使用res.send(rows)时,它什么也没显示,邮递员给了我200响应和空白页。
我从三天前开始学习NODEJS,我已经坚持了一天:(
答案 0 :(得分:0)
您没有发送任何数据作为响应。
res.send
不发送JSON,仅发送字符串使用res.json()
app.get('/', (req, res) => {
getClients()
.then((rows) => res.json(rows))
.catch(err => res.status(400).json(err));
});