从 URL 中抓取一个数字,并在节点 js 查询中使用它
Grabbing a number from URL, and using it in node js query
所以我从我的 URL 中获取了一个包 ID 号,我想用它来查询带有 mongodb 的数据库。
app.get("/order", (req, res) => {
const packageID = req.query.packId;
console.log("Selected package ID is " + packageID);
mongo.connect(mongoUrl, { useNewUrlParser: true, useUnifiedTopology: true }, (err, client) =>{
if (err) throw err;
console.log("Does Mongo See our selected package ID of " + packageID);
//select database
const db = client.db("travelexperts");
//grab collection
const collection = db.collection("packages");
//find variable(s) in packages:
collection.find({ PackageId: packageID }).toArray((err, result) =>{
if (err) throw err;
// res.render("order", {
// packages: result
// });
console.log(result);
client.close();
});
});
res.sendFile(__dirname + "/views/order.html");
所以如果我在“PackageId:”之后手动放置一个整数值,上面的代码就可以工作,但是如果我尝试像上面的方法一样转换变量,我的控制台只会在应该打印的地方输出“[]”该信息。如果我使用实际整数,它会打印预期的值数组。我可以使用日志来确保从 URL 中提取的值是正确的(确实如此,并且这些日志出现在我的控制台中),但如果我将替换“替换”,它实际上只会打印数据库中的信息packageID”和一个数字。如何将此变量用作“collection.find({ PackageId:}).toArray”行中的变量?
req.query 上的所有值都将是字符串。如果 mongo 需要一个数字,您需要对其进行转换。像这样:const packageID = Number(req.query.packId)
所以我从我的 URL 中获取了一个包 ID 号,我想用它来查询带有 mongodb 的数据库。
app.get("/order", (req, res) => {
const packageID = req.query.packId;
console.log("Selected package ID is " + packageID);
mongo.connect(mongoUrl, { useNewUrlParser: true, useUnifiedTopology: true }, (err, client) =>{
if (err) throw err;
console.log("Does Mongo See our selected package ID of " + packageID);
//select database
const db = client.db("travelexperts");
//grab collection
const collection = db.collection("packages");
//find variable(s) in packages:
collection.find({ PackageId: packageID }).toArray((err, result) =>{
if (err) throw err;
// res.render("order", {
// packages: result
// });
console.log(result);
client.close();
});
});
res.sendFile(__dirname + "/views/order.html");
所以如果我在“PackageId:”之后手动放置一个整数值,上面的代码就可以工作,但是如果我尝试像上面的方法一样转换变量,我的控制台只会在应该打印的地方输出“[]”该信息。如果我使用实际整数,它会打印预期的值数组。我可以使用日志来确保从 URL 中提取的值是正确的(确实如此,并且这些日志出现在我的控制台中),但如果我将替换“替换”,它实际上只会打印数据库中的信息packageID”和一个数字。如何将此变量用作“collection.find({ PackageId:}).toArray”行中的变量?
req.query 上的所有值都将是字符串。如果 mongo 需要一个数字,您需要对其进行转换。像这样:const packageID = Number(req.query.packId)