尝试访问index.html时,Express Server返回无法获取

时间:2015-10-19 21:33:59

标签: javascript angularjs express

我提到了之前提出的问题,但无法解决。我安装了Express服务器并尝试通过它运行Index.html文件。 但是我得到了“无法获得/'作为回应。

这是我通过其调用index.html的server.js

var express = require('express');
var app = express();

app.get('index.html', function (req, res) {

  app.use("/", express.static(__dirname));
});

var server = app.listen(3000, function () {
  var host = server.address().address;
  var port = server.address().port;

  console.log('Example app listening at http://%s:%s', host, port);
});

提前致谢!!

2 个答案:

答案 0 :(得分:1)

当您访问托管网站上的目录时,请在端口8080上显示localhost的根目录,使用http://localhost:8080/作为URL,浏览器不会向' index.html`发送请求服务器,只使用服务器发回的任何内容。

它是快速静态中间件,它响应没有文件名的浏览器请求将检查文件夹是否存在,并且(默认情况下)返回文件夹中包含的任何index.html。因此,您的路由代码行app.get('index.html')永远不会执行,浏览器会向您提供错误消息。

如果您想尝试,请使用迷你静态快递服务器。

var express = require('express');
var app = express();
app.use(express.static('../public')); // path to your public directory

var server = app.listen(8080, function () {
   var host = server.address().address;
   var port = server.address().port;
   console.log('Example app listening at http://%s:%s', host, port);
 });

答案 1 :(得分:1)

如果你想要一个简单的静态,文件夹作为服务器类的东西,你可以不用像“/ public”这样的明确方式来做:

var fs = require("fs");
var host = "localhost";
var port = 8000;
var express = require("express");

var app = express();
app.use('/', express.static(__dirname));
app.listen(port, host);

我把它放在文件express.js中,因此它与index.html位于同一个文件夹中(甚至与node.exe关联.js)。这样文件夹就是服务器的根目录。