Node.js MERN此同一查询来自远程服务器的不同输出

Node.js MERN此同一查询来自远程服务器的不同输出,node.js,reactjs,express,Node.js,Reactjs,Express,我的MERN应用程序有问题。在我的本地主机上,一切都是正确的,但由于托管在远程服务器上,数据库返回不同的数据 当我发送查询http://:8080/getreports时?日期=40-2020 (实际上,无论服务器在getreports之后得到什么,都会返回相同的结果) 服务器从数据库返回所有记录 当我在localhost服务器上使用相同的查询时,返回日期等于40-2020的记录。 (正确的行为) 我下面的服务器代码 谢谢你的帮助 const express = require("ex

我的MERN应用程序有问题。在我的本地主机上,一切都是正确的,但由于托管在远程服务器上,数据库返回不同的数据

当我发送查询http://:8080/getreports时?日期=40-2020

(实际上,无论服务器在getreports之后得到什么,都会返回相同的结果)

服务器从数据库返回所有记录

当我在localhost服务器上使用相同的查询时,返回日期等于40-2020的记录。 (正确的行为)

我下面的服务器代码

谢谢你的帮助

const express = require("express");
const bodyParser = require("body-parser");
const cors = require("cors");
const app = express();
const apiPort = process.env.PORT || 8080;
const path = require("path");

const Record = require("./models/record-model");

const db = require("./db");

app.use(bodyParser.urlencoded({ extended: true }));
app.use(cors());
app.use(bodyParser.json());

db.on("error", console.error.bind(console, "MongoDB connection error:"));

app.use(express.static(path.join(__dirname, "..", "build")));

app.get("/", function (req, res) {
  res.sendFile(path.join(__dirname, "..", "build", "index.html"));
});

app.post("/reports", (req, res) => {
  const body = req.body;

  if (!body) {
    return res.status(400).json({
      success: false,
      error: "You must provide a record",
    });
  }

  const record = new Record(body);

  if (!record) {
    return res.status(400).json({ success: false, error: err });
  }

  record
    .save()
    .then(() => {
      return res.status(201).json({
        success: true,
        message: "Record created!",
      });
    })
    .catch((error) => {
      return res.status(400).json({
        error,
        message: "Record not created!",
      });
    });
});

app.get("/getreports", async (req, res) => {
  await Record.find({ "WW-YYYY": `${req.query.date}` }, (err, reports) => {
    if (err) {
      return res.status(400).json({ success: false, error: err });
    }
    if (!reports.length) {
      return res
        .status(404)
        .json({ success: false, error: `Reports not found` });
    }
    return res.status(200).json({ success: true, data: reports });
  }).catch((err) => console.log(err));
});


app.listen(apiPort, () => console.log(`Server running on port ${apiPort}`));

我想找出解决我问题的办法。问题是服务器无法识别html查询中参数的模板字符串。在本地机器上一切正常,但在远程服务器上,moongo的行为默认为,比如搜索空对象时,返回数据库中的所有记录

我只是简单地将模板字符串删除到简单变量中并工作,这就是我在代码中所做的:

等待记录。查找({“WW-YYYY”:
${req.query.date}
},(错误,报告)

等待记录。查找({“WW-YYYY”:req.query.date},(错误,报告)

也许这会对将来的人有所帮助

问候,,
Damian

app.get(“/getreports”),async(req,res)=>{wait Record.find({“WW-YYYY”):
${req.query.date}
}此路径从url接收参数并搜索moongodb以返回记录。问题是此设置在我的本地主机上运行正常,可以正确过滤所有内容。当其托管到ubuntu服务器时,每次返回所有记录时,您发送的GetReports?date=40-2020是我发送到API的url查询