节点JS基础路由器被覆盖

Node JS Base Router being overwritten

本文关键字:覆盖 路由器 JS 节点      更新时间:2023-09-26

我的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('/', ...将处理默认功能。但是,当我运行node server.js时,它不是将消息记录到控制台,而是从/public加载index.html

什么是覆盖此处的路由功能?如果有帮助的话,快速版本是4.11.1。

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

文件说明:

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

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

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