Async/Await 在 digitalocean 上使用 node-pg 没有返回任何东西
Async/Await with node-pg on digitalocean not returning anything
您好,我正在尝试从 server/index.js api 端点 data.getData()
获取数据,该数据由 api/data.js 提供,后者又获取其配置和连接来自 db/index.js 的对象。问题是 async/await 没有返回任何内容,并且在开发控制台网络中显示待处理。我也没有收到任何错误。代码如下。将 node-pg 与 pool.query.
一起使用
//server/index.js
const express = require("express");
const data = require("./api/data")
const PORT = process.env.PORT || 3001;
const app = express();
app.use(express.json())
app.get('/', async (req, res) => {
// res.status(200).send('Hello World!');
await data.getData()
.then(response => {
res.status(200).send(console.log(response));
})
.catch(error => {
res.status(500).send(error);
})
console.log("server running")
})
app.listen(PORT, () => {
console.log(`Server listening on ${PORT}`);
});
//api/data.js
const db = require('../db/index.js');
const getData = async () => {
const query = {
// text: 'SELECT COUNT(*) as count FROM "public"."Subregions-USA";',
text: 'SELECT Now()',
// values: ['B007RKDGVQ'],
// rowMode: 'array',
};
const dbResults = await db.query(query)
.then((data) => JSON.stringify(data))
.catch(error => {
console.log(error)
})
console.log("database response test")
return dbResults
}
// getData()
module.exports = {getData}
设置非常简单,但我不明白为什么它不起作用。
我正在尝试连接到数字海洋中的 postgresql,所有连接和配置都是正确的。我使用了类似的相同设置,但使用 electron.js 并且它有效。我能够轻松检索数据。
感谢任何帮助。
您应该避免同时使用 async/await
和 then/catch
。使用其中之一。
- server/index.js
const express = require("express");
const data = require("./api/data")
const PORT = process.env.PORT || 3001;
const app = express();
app.use(express.json())
app.get('/', async (req, res) => {
// res.status(200).send('Hello World!');
try {
const result = await data.getData();
res.status(200).send(result);
} catch (error) {
res.status(500).send(error);
}
console.log("server running")
});
app.listen(PORT, () => {
console.log(`Server listening on ${PORT}`);
});
- api/data.js
const db = require('../db/index.js');
const getData = async () => {
const query = {
// text: 'SELECT COUNT(*) as count FROM "public"."Subregions-USA";',
text: 'SELECT Now()',
// values: ['B007RKDGVQ'],
// rowMode: 'array',
};
const dbResults = await db.query(query);
console.log("database response test", dbResults)
return JSON.stringify(dbResults)
}
module.exports = {getData}
好的,我发现了问题,它与逻辑本身无关,更多的是与我为 PostgreSQL 安装的包有关。
出于某些愚蠢的原因,我没有安装 npm i pg
,而是安装了 npm i node-pg
。
卸载并安装正确的软件包后,我可以使用 PostgreSQL 响应。
您好,我正在尝试从 server/index.js api 端点 data.getData()
获取数据,该数据由 api/data.js 提供,后者又获取其配置和连接来自 db/index.js 的对象。问题是 async/await 没有返回任何内容,并且在开发控制台网络中显示待处理。我也没有收到任何错误。代码如下。将 node-pg 与 pool.query.
//server/index.js
const express = require("express");
const data = require("./api/data")
const PORT = process.env.PORT || 3001;
const app = express();
app.use(express.json())
app.get('/', async (req, res) => {
// res.status(200).send('Hello World!');
await data.getData()
.then(response => {
res.status(200).send(console.log(response));
})
.catch(error => {
res.status(500).send(error);
})
console.log("server running")
})
app.listen(PORT, () => {
console.log(`Server listening on ${PORT}`);
});
//api/data.js
const db = require('../db/index.js');
const getData = async () => {
const query = {
// text: 'SELECT COUNT(*) as count FROM "public"."Subregions-USA";',
text: 'SELECT Now()',
// values: ['B007RKDGVQ'],
// rowMode: 'array',
};
const dbResults = await db.query(query)
.then((data) => JSON.stringify(data))
.catch(error => {
console.log(error)
})
console.log("database response test")
return dbResults
}
// getData()
module.exports = {getData}
设置非常简单,但我不明白为什么它不起作用。
我正在尝试连接到数字海洋中的 postgresql,所有连接和配置都是正确的。我使用了类似的相同设置,但使用 electron.js 并且它有效。我能够轻松检索数据。
感谢任何帮助。
您应该避免同时使用 async/await
和 then/catch
。使用其中之一。
- server/index.js
const express = require("express");
const data = require("./api/data")
const PORT = process.env.PORT || 3001;
const app = express();
app.use(express.json())
app.get('/', async (req, res) => {
// res.status(200).send('Hello World!');
try {
const result = await data.getData();
res.status(200).send(result);
} catch (error) {
res.status(500).send(error);
}
console.log("server running")
});
app.listen(PORT, () => {
console.log(`Server listening on ${PORT}`);
});
- api/data.js
const db = require('../db/index.js');
const getData = async () => {
const query = {
// text: 'SELECT COUNT(*) as count FROM "public"."Subregions-USA";',
text: 'SELECT Now()',
// values: ['B007RKDGVQ'],
// rowMode: 'array',
};
const dbResults = await db.query(query);
console.log("database response test", dbResults)
return JSON.stringify(dbResults)
}
module.exports = {getData}
好的,我发现了问题,它与逻辑本身无关,更多的是与我为 PostgreSQL 安装的包有关。
出于某些愚蠢的原因,我没有安装 npm i pg
,而是安装了 npm i node-pg
。
卸载并安装正确的软件包后,我可以使用 PostgreSQL 响应。