从 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)