NodeJS 如何访问Express的uploadDir属性?

91zkwejq  于 2023-06-05  发布在  Node.js
关注(0)|答案(1)|浏览(139)

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

fcy6dtqo1#

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

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

相关问题