Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将mongoDB添加到使用postgreSQL的web应用程序_Javascript_Node.js_Mongodb_Postgresql_Backend - Fatal编程技术网

Javascript 将mongoDB添加到使用postgreSQL的web应用程序

Javascript 将mongoDB添加到使用postgreSQL的web应用程序,javascript,node.js,mongodb,postgresql,backend,Javascript,Node.js,Mongodb,Postgresql,Backend,我有一个简单的web应用程序,带有nodeJS后端和postgreSQL数据库。 我需要添加一个mongoDB数据库,它还将应用程序的状态保存为备份 是否可以在不改变应用程序结构的情况下以简单的方式添加它? 我的代码: postgres.js文件: const Pool = require('pg').Pool const pool = new Pool({ user: 'postgres', host: 'localhost' database: 'tasks', pass

我有一个简单的web应用程序,带有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}.`)
});

谢谢

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


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

这是一个非常简单的应用程序,可以为用户保存新任务和已完成任务。使用Mongo数据库是项目的一项要求,因此我必须添加它,并且我正在寻找最简单的方法:)将“一个非常简单的应用程序”的应用程序状态添加到MongoDB似乎是一种使事情过于复杂的可靠方法!但那就不是你的事了。我也不明白为什么postgres不存储任务完成与否的数据。如果你已经有了postgres,为什么还要使用MongoDB?我无法理解,但正如我所说的,这是我正在从事的项目的一项要求:“服务器将是一个基于REST API的服务器,它将在PostgreSQL和MongoDB上保存应用程序的状态(作为备份)”。所以我只是想找到一种方法让它发挥作用。在MongoDB数据库中备份postgres完全没有意义。如果我知道你在哪里,我会怀疑这一点。对于如何高效备份postgres数据库,有很多优秀的工具,其中没有一个涉及MongoDB。