在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条答案
按热度按时间fcy6dtqo1#
像
bodyParser
这样的中间件的参数直接传递到中间件。所有的Express中间件都是由Connect提供的,所以它甚至对Express一无所知。uploadDir
被捕获在multipart middleware的multipart
闭包中。它通过闭包存储,从不存储在其他任何地方,也不会传递给Express,因此访问原始值的唯一方法是将其作为最初传入的options
对象的一部分进行访问。没有别的办法了。如果您希望通过从
app
阅读来访问该值(正如您在评论中所说的那样),那么您应该单独在那里设置它。也就是说,这个方法有点难看,意味着你必须设置两次值。