我正在使用它将Node.js/Express设置为基本的Web服务器 - 它只提供一组静态页面而无需任何其他处理.当浏览器提取没有任何文件名的网站时,我希望它始终提供/default.html.
var express = require("express"); var app = express(); var port = process.env.PORT || 5000; app.configure(function(){ app.use(express.bodyParser()); }); app.use(express.logger()); app.use(express.static(__dirname )); app.listen(port, function() { console.log("Listening on " + port); });
我尝试过使用res.sendfile和res.redirect,但没有太大的成功; 我显然错过了一些东西,因为我最终得到了"没有方法"的错误.
你会说什么是实现目标的最简单方法?
你可以这样做.假设它是一个相对于.js文件的html文件:
app.get('/', function(req, res){ res.sendfile('default.html', { root: __dirname + "/relative_path_of_file" } ); });
我简要介绍了提供公用文件夹和指定要提供的默认页面的最佳做法.在查看"Express中间件"文档后,我的解决方案如下所示,
var express = require('express'); var app = express(); var options = { index: "coming-soon.html" }; app.use('/', express.static('app', options)); var server = app.listen(8081, function () { var host = server.address().address; var port = server.address().port; console.log('my app is listening at http://%s:%s', host, port); });