NodeJS - 我的方法没有执行

时间:2017-04-25 10:55:04

标签: javascript node.js

在我的档案./functions/login_registration_functions.js

我有以下代码

var methods = {
    check_if_not_null: function (item_to_be_checked, item_to_store_the_checked_item) {
        if(item_to_be_checked != null){
            item_to_store_the_checked_item = item_to_be_checked;
        }
}
};

module.exports = methods;

我在routes.js文件

中调用它
var log_reg_funcs = require('./functions/login_registration_functions.js');

我正在调用put调用

中的方法
log_reg_funcs.check_if_not_null(req.body.title, request.title);

但它不起作用。当我用下面的代码替换上面的代码时:

if(req.body.title != null){
            request.title = req.body.title;
        }

一切正常

为什么我在这里失踪?

1 个答案:

答案 0 :(得分:2)

当你这样做时:

item_to_store_the_checked_item = item_to_be_checked;

item_to_store_the_checked_item是函数的参数时,您不会更改调用函数时使用的原始变量,而只会更改函数中传递的值的本地副本。

如果您传递并反对并更改了其中一个属性,那么它将按预期工作。

例如,如果你有:

var methods = {
    check_if_not_null: function (item_to_be_checked, object_to_store, object_key) {
        if(item_to_be_checked != null){
            object_to_store[object_key] = item_to_be_checked;
        }
    }
};

然后你就可以做到:

log_reg_funcs.check_if_not_null(req.body.title, request, 'title');

(JavaScript使用下划线代替camelcase很奇怪,但我在这里保留你的风格)