Приложение отлично работает на героку, кроме одной проблемы - PullRequest
0 голосов
/ 14 мая 2019

У меня есть приложение, которое позволяет людям искать своих представителей правительства по адресу. Когда он подключен к локальному моноблоку, он работает отлично. Я использую БД для хранения как / не нравится на странице представителей. Проблема в том, что я добавил документы в базу данных вручную, поэтому он не может / не может отслеживать лайки на heroku, поскольку база данных не создает динамически в коде. Это не казалось большой проблемой. Я бы просто создал точно такие же документы в Atlas db, верно? Ну вот, я через несколько часов и выдергиваю волосы. Я никогда не использовал Атлас, но это кажется простым. Используйте их URL для подключения к вашему кластеру / DB. Вот об этом из того, что я могу сказать. Проблема в том, что я могу получить пустой массив из возврата по всему маршруту ... и это все. У меня есть два документа в БД в настоящее время, и мне нужно, чтобы они отслеживали мои симпатии / антипатии. Я просто не уверен, куда идти отсюда, и должен развернуть это к завтрашнему вечеру. Пожалуйста, помогите

Я переформатировал URL-адрес шестью путями до воскресенья. Я перемещался по коду на сервере, чтобы попытаться диагностировать проблему, и я испортил свои маршруты. Я попробовал почтальон и получаю массив обратно, но это так. Я добавил console.log на сервере, который возвращает мой кластер, так что я знаю, что я подключен в некотором качестве. Извините, если я упустил что-то очевидное и не показал достаточно кода, я новичок во всем этом, если вы не можете сказать. Большое спасибо за любую помощь, которую вы можете предоставить.

````const routes = require("./routes");
````const app = express();

//////////////////////////////////////////////////////////////////
````const mongoose = require("mongoose")
````const bodyParser = require("body-parser")


````//Bodyparser middleware
````app.use(bodyParser.json());

````//DB config 

````const MongoClient = require('mongodb').MongoClient;
````const uri = "mongodb+srv://NicoP93:REDACTED@cluster0-vplwy.mongodb.net/test?retryWrites=true"
````MongoClient.connect(uri, function(err, client) {
    ````if(err){
        ````console.log("Not connected to atlas")
    ````} else {
        ````console.log("connected to atlas")
    ````}
    ````const collection = client.db("Overthrow").collection("Knowledge")
    ````if(collection){console.log("Collection Connection")};
    ````console.log(collection);

````mongoose.connect(uri).then(() => {console.log("Mongoose connected")})
````})

 ````const items = require("./routes/api/items")
 ````app.use('/api/items', items);

````const PORT = process.env.PORT || 3001;



///////////////////////////////////////////////////////////////////////////////
````app.use(express.urlencoded({
    ````extended: true
````}));
````app.use(express.json());

````if (process.env.NODE_ENV === "production") {
    ````app.use(express.static("client/build"));
````}

````app.use(routes);


````app.listen(PORT, function () {
````    console.log("?  ==> API Server now listening on port " + PORT);
````});

When I hit the get all route I would expect something like 
{"_id:5cd9fff41c9d440000f25cb8
buttonLike:0
buttonDislike:0
representativeName:"Ted Cruz"
__v:"0"} 
because thats what in my atlas db, Im looking at it right now in their website. 

Additionally, node server returns:

{(node:5600) DeprecationWarning: current URL string parser is deprecated, and will be removed in a future version. To use the new parser, pass option { useNewUrlParser: true } to MongoClient.connect.
?  ==> API Server now listening on port 3001
connected to atlas
Collection Connection
Collection {
  s:
   { pkFactory:
      { [Function: ObjectID]
        index: 550824,
        createPk: [Function: createPk],
        createFromTime: [Function: createFromTime],
        createFromHexString: [Function: createFromHexString],
        isValid: [Function: isValid],
        ObjectID: [Circular],
        ObjectId: [Circular] },
     db:
      Db {
        _events: [Object: null prototype] {},
        _eventsCount: 0,
        _maxListeners: undefined,
        s: [Object],
        serverConfig: [Getter],
        bufferMaxEntries: [Getter],
        databaseName: [Getter] },
     topology:
      ReplSet {
        _events: [Object],
        _eventsCount: 25,
        _maxListeners: Infinity,
        clientInfo: [Object],
        s: [Object] },
     dbName: 'Overthrow',
     options:
      { promiseLibrary: [Function: Promise],
        readConcern: undefined,
        readPreference: [ReadPreference] },
     namespace: 'Overthrow.Knowledge',
     readPreference: ReadPreference { mode: 'primary', tags: undefined },
     slaveOk: true,
     serializeFunctions: undefined,
     raw: undefined,
     promoteLongs: undefined,
     promoteValues: undefined,
     promoteBuffers: undefined,
     internalHint: null,
     collectionHint: null,
     name: 'Knowledge',
     promiseLibrary: [Function: Promise],
     readConcern: undefined,
     writeConcern: undefined } }
     Mongoose connected                }

...