У меня есть приложение, которое позволяет людям искать своих представителей правительства по адресу. Когда он подключен к локальному моноблоку, он работает отлично. Я использую БД для хранения как / не нравится на странице представителей. Проблема в том, что я добавил документы в базу данных вручную, поэтому он не может / не может отслеживать лайки на 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 }