Развертывание базы данных MongoDB - PullRequest
0 голосов
/ 05 декабря 2018

Я создаю небольшой веб-приложение.Я использую MongoDB для извлечения и хранения моих данных, на данный момент все работает отлично, но теперь я хочу разместить свое приложение в Интернете.

Я знаю, как развернуть свой сценарий на Heroku, но я не знаюзнаете, как он должен работать с MongoDB, может быть, добавив MongoDB к требованиям моего приложения?

Я провел небольшое исследование и обнаружил, что для Mlab есть дополнение Heroku, но, к сожалению, Mlab собирается вскоре перейти на Atlas

1 Ответ

0 голосов
/ 05 декабря 2018

(отредактировано, просто скажите, что вы добавили информацию о переносе mlab, AWS также предлагает те же параметры песочницы, что и mlab на атласе, как вы сказали, вы также можете установить ее локально и добавить в файл settings.py)

локальная настройка

  1. скачать бесплатную базу данных MongoDB по адресу https://www.mongodb.com
  2. PyMongo Python необходим драйвер MongoDB для доступа к базе данных MongoDB,используйте PIP для установки «PyMongo»

Пример настройки mlab

enter image description here Почему бы вам не взглянуть на один из моих проектови посмотрите, как я развернул mongo на CDN

Я использовал этот сайт, чтобы создать изолированную FREE базу данных CDN https://mlab.com/

придерживайтесь этой строки, где мы используем базу данных из CDN, таким образом, нам даже не нужно устанавливать ее в нашей системе!

// это наша база данных MongoDB, изменитьэто для ОБЛАЧНОЙ MONGO ссылки const dbRoute = "mongodb: // *****: ******@******.mlab.com: ***** / ********* ";

const mongoose = require("mongoose");
const express = require("express");
const bodyParser = require("body-parser");
const logger = require("morgan");
const Data = require("./data");

const API_PORT = 3001;
const app = express();
const router = express.Router();

// this is our MongoDB database, change this to CLOUD MONGO link
const dbRoute = "mongodb://*****:******@******.mlab.com:*****/*********";

// connects our back end code with the database
mongoose.connect(
  dbRoute,
  { useNewUrlParser: true }
);

let db = mongoose.connection;

db.once("open", () => console.log("connected to the database"));

// checks if connection with the database is successful
db.on("error", console.error.bind(console, "MongoDB connection error:"));

// (optional) only made for logging and
// bodyParser, parses the request body to be a readable json format
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.use(logger("dev"));

// this is our get method
// this method fetches all available data in our database
router.get("/getData", (req, res) => {
  Data.find((err, data) => {
    if (err) return res.json({ success: false, error: err });
    return res.json({ success: true, data: data });
  });
});

// this is our update method
// this method overwrites existing data in our database
router.post("/updateData", (req, res) => {
  const { id, update } = req.body;
  Data.findOneAndUpdate(id, update, err => {
    if (err) return res.json({ success: false, error: err });
    return res.json({ success: true });
  });
});

// this is our delete method
// this method removes existing data in our database
router.delete("/deleteData", (req, res) => {
  const { id } = req.body;
  Data.findOneAndDelete(id, err => {
    if (err) return res.send(err);
    return res.json({ success: true });
  });
});

// this is our create methid
// this method adds new data in our database
router.post("/putData", (req, res) => {
  let data = new Data();

  const { id, message } = req.body;

  if ((!id && id !== 0) || !message) {
    return res.json({
      success: false,
      error: "INVALID INPUTS"
    });
  }
  data.message = message;
  data.id = id;
  data.save(err => {
    if (err) return res.json({ success: false, error: err });
    return res.json({ success: true });
  });
});

// append /api for our http requests
app.use("/api", router);

// launch our backend into a port
app.listen(API_PORT, () => console.log(`LISTENING ON PORT ${API_PORT}`));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...