节点JS基本路由器被覆盖

时间:2015-03-03 17:56:00

标签: javascript node.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);
});

我是node / express的新手,但希望得到一些澄清。我以为app.get('/', ...会处理默认功能。但是,当我运行index.html时,它不会将消息记录到控制台,而是从/public加载node server.js

这里覆盖路由功能的是什么?如果它有帮助,快递版本是4.11.1。

1 个答案:

答案 0 :(得分:1)

由于serve-static模块是您正在使用的中间件,因此存在此问题:express.static()

请注意其文档:

  

默认情况下,此模块将发送“index.html”文件以响应目录上的请求。要禁用此设置false或提供新索引,请按首选顺序传递字符串或数组。

即。更换: app.use(express.static(__dirname + '/public'));

使用: app.use(express.static(__dirname + '/public',{'index':false}));