我的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/表达新手,但希望得到一些澄清。我以为app.get('/', ...
将处理默认功能。但它不是将消息记录到控制台,而是加载 index.html
来自/public
当我运行node server.js
时.
这里覆盖路由功能的是什么?如果有帮助的话,快速版本是 4.11.1。
最佳答案
您遇到此问题的原因是 serve-static
模块是您正在使用的中间件: express.static()
文档注释:
By default this module will send "index.html" files in response to a request on a directory. To disable this set false or to supply a new index pass a string or an array in preferred order.
即代替:
app.use(express.static(__dirname + '/public'));
与:
app.use(express.static(__dirname + '/public',{'index':false}));
关于javascript - Node JS 基本路由器被覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28838620/