我在节点js中有一些服务器端代码,它创建了一个快速的js对象并运行服务器。该应用程序加载index.html页面,该页面位于公用文件夹中。我从来没有编写代码来提供主页(如下所述),但仍然有效。
app.get('*', (req, res) => {
res.sendFile(path.join(__dirname, 'public/index.html'));
});
我没有编写这段代码,所以index.html是如何呈现的。我的理解是,快递JS在代码中声明的所有静态文件夹中查找index.html页面的第一个实例并呈现它,在我的例子中,静态文件夹是“publimc”并且它在根级别具有index.html。 / p>
服务器代码如下所示,我已经写过了。
var express = require('express');
var app = express();
var mongojs = require('mongojs');
var db = mongojs('contactlist', ['contactlist']);
var bodyParser = require('body-parser');
app.use(express.static(__dirname + '/publimc'));
app.use(bodyParser.json());
app.get('/contactlist', function (req, res) {
console.log('I received a GET request');
db.contactlist.find(function (err, docs) {
console.log(docs);
res.json(docs);
});
});
app.listen(8000);
console.log("Server running on port 8000");
答案 0 :(得分:0)
主页呈现为express.static
中间件default options的一部分。
要禁用此逻辑,请设置express.static(..., { index: false })
。
如果要更改用作主页的文件,请设置express.static(..., { index: 'yourfile.html' })
。
实际上,此选项的作用是尝试为公用文件夹中的每个目录提供具有给定文件名的索引页,因此,如果您有public/foo/index.html
,那么在请求/foo/
时它将被提供服务} path。