【问题标题】:adding mongoDB to web app that is working with postgreSQL将 mongoDB 添加到使用 postgreSQL 的 Web 应用程序
【发布时间】:2021-03-28 13:19:51
【问题描述】:

我有一个带有 nodeJS 后端和 postgreSQL 数据库的简单网络应用程序。 我需要添加一个 mongoDB 数据库,该数据库还将应用程序的状态保存为备份。

是否可以在不更改应用程序结构的情况下以简单的方式添加它? 我的代码:

postgres.js 文件:


const Pool = require('pg').Pool

const pool = new Pool({
  user: 'postgres',
  host: 'localhost'
  database: 'tasks',
  password: 'password',
  port: 5432,
});

const getTasks = (request, response) => {
    // get tasks query
};

const getTaskById = (request, response) => {
    // get task by id query
};

const createTask = (request, response) => {
    // create task query
};

const updateTask = (request, response) => {
    // update task query
};

const deleteTask = (request, response) => {
    // delete task query
}

module.exports = {
    getTasks,
    getTaskById,
    createTask,
    updateTask,
    deleteTask
};

index.js 文件:

const express = require('express')
const bodyParser = require('body-parser')
var cors = require('cors')
const app = express()
const port = 8080

const db = require('./db/postgres')

app.use(cors());

app.use(bodyParser.json());
app.use(
  bodyParser.urlencoded({
    extended: true,
  })
);

app.get('/', (request, response) => {
    response.json({ info: 'Node.js, Express, and Postgres API' })
});

app.get('/tasks', db.getTasks);
app.get('/tasks/:id', db.getTaskById);
app.post('/tasks', db.createTask);
app.put('/tasks/:id', db.updateTask);
app.delete('/tasks/:id', db.deleteTask);

app.listen(port, () => {
    console.log(`App running on port ${port}.`)
});

谢谢!

【问题讨论】:

    标签: javascript node.js mongodb postgresql backend


    【解决方案1】:

    应用程序的状态有多复杂,您打算如何保持更新?也许使用 MongoDB 作为状态快照的存储过于复杂。在 Redis 中存储 JSON 可能是更简单的方法。

    如果您已经拥有 postgres 数据库,您也许还应该问自己为什么需要保存应用程序的状态。您的后端会产生什么状态来辅助 postgres 中的数据?

    【讨论】:

    • 这是一个非常简单的应用程序,可以为用户保存新任务和已完成的任务。使用 Mongo 数据库是项目的要求,所以我必须添加它,我正在寻找最简单的方法:)
    • 将“一个非常简单的应用程序”的应用程序状态添加到 MongoDB 中似乎是一种让事情变得过于复杂的可靠方法!但那时它不在你的手中。我也看不出为什么 postgres 不会存储任务是否完成的数据。如果您已经拥有 postgres,为什么还要使用 MongoDB,这超出了我的范围。
    • 我不明白这一点,但正如我所说,这是我正在从事的项目的要求:“服务器将是一个基于 REST API 的服务器,它将保存 PostgreSQL 和 MongoDB 上应用程序的状态(作为备份)”。所以我只是在寻找一种让它发挥作用的方法。
    • 在 MongoDB 数据库中备份 postgres 完全没有意义。如果我在你那里,我会质疑这个。有很多优秀的工具可以对 postgres 数据库进行高效备份,但没有一个涉及 MongoDB。
    猜你喜欢
    • 1970-01-01
    • 2012-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-01
    • 2013-05-04
    相关资源
    最近更新 更多