如何访问express的uploadDir属性?

时间:2013-03-22 03:34:46

标签: node.js express connect formidable

在快递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 个答案:

答案 0 :(得分:3)

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

如果您希望通过阅读app(正如您在评论中所述)来访问该值,那么您应该单独在那里设置它。也就是说,这种方法有点难看,意味着你必须设置两次值。

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