无法将参数传递给 mongo 查找集合

Not able to pass parameter to mongo find collection

Req.params 在 db.collection.find 执行后获取值。有人可以告诉我这段代码做错了什么吗?

exports.findAll = function(req, res) {
    var postal = parseInt(req.params.postal);
    db.collection('ifscdata', function(err, collection) {
        collection.find({'ADDRESS':/postal/}).toArray(function(err, items) {
            res.send(items);
        });
    });

我应该根据邮政地址对地址进行部分搜索。但是我无法将值传递给邮政,因为它只是在之后才获得值。

函数路径是这样的

app.get('/ifsc/:postal', ifsc.findAll);

示例 URL:

http://localhost:3000/ifsc/691009

为什么要在 postal 之间加上斜线?

你试过吗?

exports.findAll = function(req, res) {
    var postal = parseInt(req.params.postal);
    db.collection('ifscdata', function(err, collection) {
        collection.find({'ADDRESS': postal}).toArray(function(err, items) {
            res.send(items);
        });
    });

看起来您需要在查询中使用正则表达式,请考虑使用 RegExp 对象包装变量,如下所示:

exports.findAll = function(req, res) {
    var postal = req.params.postal, 
        regex = new RegExp(postal);

    db.collection('ifscdata', function(err, collection) {
        collection.find({'ADDRESS': regex}).toArray(function(err, items) {
            res.send(items);
        });
    });