我的server.js
文件如下所示:
var fs = require('fs');
var express = require('express');
var app = express();
// event listener
var events = require('events');
var eventEmitter = new events.EventEmitter();
var port = process.env.PORT || 3000;
// set the view engine to ejs
app.set('view engine', 'ejs');
// make express look in the public directory for assets (css/js/img)
app.use(express.static(__dirname + '/public'));
// set the home page route
app.get('/', function (req, res) {
console.log('home page loaded');
});
app.listen(port, function () {
console.log('Server listening on port ' + port);
});
我是node / express的新手,但希望得到一些澄清。我以为app.get('/', ...
会处理默认功能。但是,当我运行index.html
时,它不会将消息记录到控制台,而是从/public
加载node server.js
。
这里覆盖路由功能的是什么?如果它有帮助,快递版本是4.11.1。
答案 0 :(得分:1)
由于serve-static
模块是您正在使用的中间件,因此存在此问题:express.static()
请注意其文档:
默认情况下,此模块将发送“index.html”文件以响应目录上的请求。要禁用此设置false或提供新索引,请按首选顺序传递字符串或数组。
即。更换:
app.use(express.static(__dirname + '/public'));
使用:
app.use(express.static(__dirname + '/public',{'index':false}));