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