3

In express app.js I define uploadDir = "./tmp", but how can I access it later?

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')));
});
4

1 回答 1

3

中间件的参数bodyParser直接进入中间件。所有的 Express 中间件都是由 Connect 提供的,所以它甚至对 Express 一无所知。被uploadDir捕获在多部分中间件multipart的闭包中。它通过闭包存储,从不存储在其他任何地方,也不会传递给 Express,因此访问原始值的唯一方法是将其作为最初传入的对象的一部分进行访问。没有其他方法。options

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

app.set('uploadDir', './tmp');
于 2013-03-22T04:26:32.637 回答