1

我已经阅读了很多关于这个的内容,这似乎是一个让很多人感到困惑的问题。我正在用 express 做一个项目,我不想给你任何诱人的引擎,我正在使用带下划线的骨干,这对我来说已经足够了。我想编写纯 HTML 并渲染它们..

app.configure(function(){
  app.set('port', process.env.PORT || 3000);
  app.set("view options", {layout: false});
  app.use(express.static(__dirname + '/views'));
  app.set('views', __dirname + '/views');
  app.use(express.favicon());
  app.use(express.logger('dev'));
  app.use(express.bodyParser());
  app.use(express.methodOverride());
  app.use( express.cookieParser() );
  app.use(express.session({ secret: 'topsecret' } ));
  app.use(passport.initialize());
  app.use(passport.session());
  app.use(app.router);
  app.use(express.static(path.join(__dirname, 'public')));
});

这是我到目前为止所拥有的。我很难理解 express 如何知道将 index.html 文件呈现为我的主页,即使我有这个:

app.get('/', function(req, res){
    console.log("Heyyyyyy");
});

我希望什么都不会被渲染并且“Heyyyy”会被打印,但是 express 会渲染 index.html 并且不会打印“Heyyyy”

4

1 回答 1

3

Express 按配置顺序评估中间件。

app.router.

index.html文件从__dirname + '/views'目录中取出。

在中间件堆栈的底部还有一个静态文件处理程序。静态文件处理程序应该位于中间件堆栈的顶部。当它们位于中间件堆栈的底部时,每个请求都会不必要地处理所有堆栈。express.bodyParser()例如,在提供静态文件时不需要运行。

于 2013-06-12T20:25:43.360 回答