【发布时间】:2015-02-15 06:32:53
【问题描述】:
我正在观看一些关于 nodejs 的介绍视频。我遇到了一个我想通的问题,但我想了解“为什么”。这是有问题的原始代码:
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 }));
每次我去使用请求中的 body 对象时,它都是未定义的。我的问题是app.use(bodyParser.urlencoded({ extended: false }));。那么我是如何解决的呢?我将那条线移到controllers.init(app); 上方。
所以我想再次了解这里的问题,以便将来防止它。是某种类型的 byref/byval 问题吗?在将应用程序对象传递给控制器后,我对它所做的所有其他更改似乎都有效。谁能解释这里发生了什么以及如何防止将来发生这种情况?
【问题讨论】:
标签: javascript node.js express pass-by-reference pass-by-value