Как использовать MongoDB с кодами и боксом? - PullRequest
0 голосов
/ 08 февраля 2020

Я прошел курс Udemy, чтобы изучать mongodb, и, поскольку в репетиторе используется облачный ide (cloud9), я также решил использовать его. Однако поскольку cloud9 теперь требуется учетная запись AWS, я подумал об использовании CodeSandbox. Но я не могу понять, как запустить Mon go сервер на нем. После установки Mongod и MongoDB, если я пытаюсь запустить приложение. js выдает ошибку:

    (node:1297) UnhandledPromiseRejectionWarning: MongoNetworkError: failed to connect to server [localhost:27017] on firstconnect [MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017]
    at Pool.<anonymous> (/sandbox/node_modules/mongodb/lib/core/topologies/server.js:433:11)
    at Pool.emit (events.js:198:13)
    at createConnection (/sandbox/node_modules/mongodb/lib/core/connection/pool.js:577:14)
    at connect (/sandbox/node_modules/mongodb/lib/core/connection/pool.js:1007:11)
    at makeConnection (/sandbox/node_modules/mongodb/lib/core/connection/connect.js:31:7)
    at callback (/sandbox/node_modules/mongodb/lib/core/connection/connect.js:247:5)
    at Socket.err (/sandbox/node_modules/mongodb/lib/core/connection/connect.js:276:7)
    at Object.onceWrapper (events.js:286:20)
    at Socket.emit (events.js:198:13)
    at emitErrorNT (internal/streams/destroy.js:91:8)
    at emitErrorAndCloseNT (internal/streams/destroy.js:59:3)
    at process._tickCallback (internal/process/next_tick.js:63:19)
(node:1297) UnhandledPromiseRejectionWarning: Unhandled promise rejection. Thiserror originated either by throwing inside of an async function without a catchblock, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:1297) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

Если я пытаюсь запустить mongod, он говорит:

mongod: command not found

Это мое приложение. js

var express = require("express");
var app = express();
var bodyParser = require("body-parser");
var mongoose = require("mongoose");

mongoose.connect("mongodb://localhost/yelp_camp");

Я пытался установить mon go и mongod, используя пользовательский интерфейс codeandbox, терминал (npm install) и делать то, что говорят в облаке9 (я знаю это не должно работать, но я не могу найти какую-либо документацию Codesandbox)

Возможно ли это сделать в codesandbox или мне придется использовать MongoAtlas? Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 08 февраля 2020

Я думаю, что на CodeSandbox нет хостинга баз данных, поэтому вы должны использовать внешний сервис.

Некоторые сервисы, которые вы можете использовать:

Пример MLab

  1. Настройка базы данных на MLab
  2. Скопировать и вставить строку подключения

Простая примерная функция будет:

let initMongo = async () => {
  try {
    await mongoose.connect(
      "mongodb://<dbuser>:<dbpassword>@ds123456.mlab.com:49878/testdatabase",
      {
        useNewUrlParser: true,
        useUnifiedTopology: true
      }
    );
    return console.log("Database connected!");
  } catch (e) {
    return console.log("Database error!", e.message);
  }
};

Вот документация CodeSandbox.

0 голосов
/ 19 февраля 2020

CodeSandbox имеет стартер для подключения к размещенному MongoDB, как Atlas - см. https://codesandbox.io/s/mongodb-database-example-starter-v3ker

...