Tag: 传递pass by reference

ByRef / ByVal问题?

我正在观看nodejs上的一些介绍types的video。 我遇到了一个我想到的问题,但我想了解“为什么”。 这是有问题的原始代码: var http = require("http"); var express = require("express"); var bodyParser = require('body-parser'); var app = express(); var controllers = require("./controllers"); controllers.init(app); app.use(express.static(__dirname + "/public")); app.set("view engine", "vash"); app.use(bodyParser.urlencoded({ extended: false })); 每次我去使用请求的身体对象,这将是未定义的。 我的问题是app.use(bodyParser.urlencoded({ extended: false })); 。 那么我是如何修复它的? 我把这一行上方controllers.init(app); 。 所以我想再次理解这个问题,所以我可以在将来避免这个问题。 这是一种byref / byval问题吗? 我把它传递给控制器​​后,我对应用程序对象的所有其他更改似乎工作。 任何人都可以解释这里发生了什么,以及如何防止这种情况发生在未来?