Как я могу получить доступ к атрибуту uploadDir экспресса?
В express app.js я определяю uploadDir = "./tmp", но как я могу получить к нему доступ позже?
app.configure(function(){
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser({uploadDir:'./tmp', keepExtensions: true})); // <--
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
});
1 ответ
Аргументы для промежуточного программного обеспечения, как bodyParser
пройдите прямо к промежуточному программному обеспечению. Все промежуточное программное обеспечение Express предоставляется Connect, поэтому он даже ничего не знает о Express. uploadDir
захвачен в multipart
закрытие многочастного промежуточного программного обеспечения. Он сохраняется через замыкание и никогда не сохраняется где-либо еще или передается в Express, поэтому единственный способ получить доступ к исходному значению - это получить доступ к нему как к части options
Объект изначально передан. Другого пути нет.
Если вы хотите, чтобы это значение было доступно при чтении из app
(как вы сказали в своем комментарии), тогда вы должны установить его там отдельно. Тем не менее, этот метод немного уродлив и означает, что вы должны установить значение дважды.
app.set('uploadDir', './tmp');