json - nginx + PostgreSQL:返回 JSON 对象
问题描述
我喜欢运行 PostgreSQL 10 服务器作为后端,使用ngx_postgres作为前端的 nginx。数据库以 JSONB 格式存储数据:
=# CREATE TABLE dump (
id bigserial primary key,
data jsonb not null
);
可以像这样查询数据:
=# SELECT data FROM dump;
使用 ngx_postgres,可以直接从 nginx 访问 PostgreSQL 数据库:
upstream postgresql {
postgres_server localhost dbname=default user=user password=secret;
}
server {
listen 80;
location /postgresql/ {
rds_json on;
postgres_pass postgresql;
postgres_query HEAD GET "SELECT data FROM dump"
postgres_rewrite no_rows 410;
postgres_output rds;
}
}
但结果以文本形式返回,带有转义的双引号,而不是预期的 JSON:
[{"data":"{\"id\": \"00ce160e5cbb49b9bc2ee6f243f87841\", \"name\": \"foo\"}"}]
如何将查询结果作为 JSON 对象返回?
解决方案
你可以试试 c2h5oh 框架。它是一个快速、轻量级的框架,用于使用 Nginx 和 PostgresSQL 的强大功能构建 Web 应用程序
推荐阅读
- google-apps-script - 触发 - 更改时 - 在第一次操作后停止
- javascript - Javascript 游戏:如何从数组中生成敌人(图像)
- vuejs2 - Vue2 $router.replace() 不调用挂载钩子
- ios - iOS - WKWebView - 在后续应用程序启动期间缓存应用程序的先前状态
- eclipse - 在 Eclipse 中检测已安装的插件
- python-3.x - 无法识别选择窗口
- google-cloud-platform - 气流添加谷歌云连接
- python - 添加垂直线以在列包含文本的日期绘制
- reactjs - 使用获取的 API 项填充下拉列表
- javascript - ScrollableTabView 中的刷新选项卡 - 反应原生