应用传入参数的函数以及自己提供的

时间:2018-05-21 23:57:52

标签: javascript node.js

我不确定我尝试做什么的技术术语,这使我很难找到信息。所以我想要做的就是将已知的未来参数传递给函数,同时还需要传递一个特定的参数。

E.g。

app.post("/example", function (req, res) { 
    admin.retrieveMany(req, res, "list") 
});

所以我将来需要的是req res个参数,但与此同时,我需要传递一个特定的参数,在本例中为"list"

有没有办法在不需要包装函数的情况下执行此操作?那么就像admin.retrieveMany(...args, "list")

更新

这是admin导出的方式

module.exports.admin = {
    create,
    drop,
    retrieveMany
}

这是汇总的创建函数:

function create(req, res, which) {
    try {
        var { name } = mixin.getProxy(req.body, res)
    }
    catch (err) {
        console.log(err)
        return
    }
    // SQL stuff
}

代理代码:

function getProxy(obj, res) {
    return new Proxy(obj, { //create new Proxy object
        get: function (obj, prop) { //define get trap
            if (prop in obj) {
                return obj[prop];
            }
            else {
                if (res) {
                    res.send({
                        error: true,
                        error_message: "could not retrieve prop: " + prop,
                        success: false
                    })
                }
                throw new Error("Missing required key: " + prop); //throw error if prop doesn't exists
            }
        }
    });
}

1 个答案:

答案 0 :(得分:0)

bind怎么样?更改retrieveMany,使其第一个参数为list代表的任何内容,然后

app.post("/example", admin.retrieveMany.bind(admin, "list"));