在JavaScript

时间:2017-01-24 06:21:51

标签: javascript node.js express

我有一个运行express的Node应用程序,我想在传入的请求主体属性上转义撇号,但我不相信这是最好的方法。

exports.p_edit = function(req, res) {

    var args = [
        req.body.title.split("'").join("\\'"),
        req.files.thumbnail.name.split("'").join("\\'"),
        req.body.tags.split("'").join("\\'"),
        req.body.topic.split("'").join("\\'"),
        req.body.preview.split("'").join("\\'"),
        req.body.markdown.split("'").join("\\'")
    ];
    // ...
    // Do other stuff

我知道我可以使用for(prop in req.body)循环迭代所有请求主体属性,但是如何动态地将值重新分配给每个属性?

例如,如果我

for(prop in req.body) {
    prop.split("'").join("\\'");
}

以及稍后引用req.body.title(或任何属性),则该值不变。同样,如果我尝试将其分配为req.body.prop = prop.split("'").join("\\'");(希望req.body.prop每次迭代都会动态更改),只需将prop属性添加到req.body对象即可。如何动态迭代和重新分配这些属性?

1 个答案:

答案 0 :(得分:2)

如果我正确理解您的要求,您只需要将循环更改为使用括号表示法:

for(var prop in req.body) {
    if (req.body.hasOwnProperty(prop))
        req.body[prop] = req.body[prop].split("'").join("\\'");
}

JSFiddle:https://jsfiddle.net/wsahkozt/1/