节点JS基础路由器被覆盖
我的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); });
我是新来的节点/expression,但希望澄清。 我认为app.get('/', ...
会处理默认的function,但是不是将消息logging到控制台,而是在运行node server.js
时从/public
加载index.html
。
这里覆盖路由function是什么? 如果有帮助,表示版本是4.11.1。
你有这个问题,因为serve-static
模块,它是你正在使用的中间件: express.static()
从其文档注意到:
默认情况下,这个模块会发送“index.html”文件来响应目录上的请求。 要禁用此设置为false或提供一个新的索引按照首选顺序传递一个string或一个数组。
即replace: app.use(express.static(__dirname + '/public'));
与: app.use(express.static(__dirname + '/public',{'index':false}));