node.js - 使用 Express 打开页面

标签 node.js express

我已经阅读了很多关于这个问题的文章,这似乎是一个让很多人感到困惑的问题。我正在做一个带有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”

最佳答案

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

您的 app.router 之前有一个静态文件处理程序。

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

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

关于node.js - 使用 Express 打开页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17074537/

相关文章:

javascript - Angular 2 和 NodeJS 项目设置

node.js - 将异步等待查询包装在 try catch 中

node.js - 为什么要使用 Bower 安装 Node

node.js - 如何使用expressJS部分/集合以相反的顺序显示集合?

javascript - 如何从discord API获取头像?

node.js - Express 无需 app.listen 或服务器即可工作

node.js - 防止 Express 向 Jade 模板显示错误

unit-testing - 使用 JEST 测试快速路线

javascript - 如何在 Node ,expressjs中的 Elasticsearch 中从 Mongoose 创建索引

node.js - 我如何过滤来自express服务器和nodejs的GET查询