我怎样才能访问express的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'))); }); 

bodyParser这样的中间件参数直接进入中间件。 所有Express中间件都由Connect提供,所以它甚至不知道有关Express的任何信息。 uploadDir是在multipart 部分中间件的multipartclosures中捕获的。 它通过闭包进行存储,并且永远不会存储在其他任何地方,或者传递给Express,所以访问原始值的唯一方法是作为最初传入的options对象的一部分进行访问。没有其他办法。

如果你想通过阅读app来访问这个值(就像你在评论中所说的那样),那么你应该自己单独设置它。 也就是说,这个方法有点难看,意味着你必须设置两次。

 app.set('uploadDir', './tmp');