javascript - Node JS 基本路由器被覆盖

标签 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/表达新手,但希望得到一些澄清。我以为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/

相关文章:

javascript - aurelia、es6 和类名大小写

javascript - 在 React Native 中通过 IP 发送 TCP 数据包不起作用

javascript - 如何使用js Promise消除厄运金字塔

node.js - 使用 Quickbook 连接器和 nodejs 的 Quickbook(桌面)API 集成

javascript - 传单数据格式

javascript - 在 Javascript 和服务器端语言之间表示数据

node.js - 如何监视文件的更改并仅在更改完成后查看它们?

node.js - Nodejs 中是否有可用于登录 csv 的库?

node.js - NodeJS 应用程序在本地工作时不响应 GAE 上的任何请求

javascript - 创建一个新文档,使用聚合对具有特定值的字段进行求和