Node.js MERN此同一查询来自远程服务器的不同输出
我的MERN应用程序有问题。在我的本地主机上,一切都是正确的,但由于托管在远程服务器上,数据库返回不同的数据 当我发送查询http://:8080/getreports时?日期=40-2020 (实际上,无论服务器在getreports之后得到什么,都会返回相同的结果) 服务器从数据库返回所有记录 当我在localhost服务器上使用相同的查询时,返回日期等于40-2020的记录。 (正确的行为) 我下面的服务器代码 谢谢你的帮助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
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},(错误,报告)
也许这会对将来的人有所帮助
问候,,
Damianapp.get(“/getreports”),async(req,res)=>{wait Record.find({“WW-YYYY”):
${req.query.date}
}此路径从url接收参数并搜索moongodb以返回记录。问题是此设置在我的本地主机上运行正常,可以正确过滤所有内容。当其托管到ubuntu服务器时,每次返回所有记录时,您发送的GetReports?date=40-2020是我发送到API的url查询