ПОЛУЧИТЬ запрос в mongodb - PullRequest
0 голосов
/ 26 марта 2020

В моем интерфейсе я использую эту ссылку с топором ios с параметром placeID: http://localhost: 3001 / api / getData? PlaceID = Uh8LPCRstLnJ-ZY3B41N9w

Я в основном хочу получить все результаты, где placeID равен чему-то. Так что в mySQL выберите * Из отзывов, где placeID = ***. Прямо сейчас я получаю 404 не найден, и я убедился, что есть что-то в базе данных с указанным c placeID. Что я делаю не так в этом запросе get?

Вот как это выглядит на заднем плане

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

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

// this is our MongoDB database
const dbRoute =
  "mongodb+srv://name:pass@cluster0-p8ar4.mongodb.net/reviews?retryWrites=true";

// 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/:placeID", (req, res) => {
  const { placeID } = req.params.placeID;
  Data.find({ placeID: placeID }, function(err, data) {
    if (err) return res.json({ success: false, error: err });
    return res.json({ success: true, data: data });
  });
});

// launch our backend into a port
app.listen(API_PORT, () => console.log(`LISTENING ON PORT ${API_PORT}`));

Вот схема в данных. js file

// /backend/data.js
const mongoose = require("mongoose");
const Schema = mongoose.Schema;

// this will be our data base's data structure
const DataSchema = new Schema(
  {
    placeID: String,
    seatRating: Number,
    comfortRating: Number,
    internetRating: Number,
    noiseRating: Number,
    outletRating: Number
  },
  { timestamps: true }
);

// export the new Schema so we could modify it using Node.js
module.exports = mongoose.model("Data", DataSchema);


1 Ответ

0 голосов
/ 26 марта 2020

router.get("/getData/:placeID" означает, что placeID используется точно так, как вы указали, не как параметр, а как путь, 404 - это код HTTP, а не код mongodb, это первая подсказка, что вы делаете что-то не так в доступ к правильному пути, доступ к http://localhost:3001/api/getData/Uh8LPCRstLnJ-ZY3B41N9w должен исправить это

Видите ли, мы передали идентификатор, как мы делаем с parameters и arguments? теперь в express req.params.placeID будет Uh8LPCRstLnJ-ZY3B41N9w

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...