Javascript ExpressJs不提供index.html服务

Javascript ExpressJs不提供index.html服务,javascript,angularjs,express,Javascript,Angularjs,Express,我有一个完全在浏览器中运行的Angular客户端应用程序。我正在尝试使用expressjs来托管它。我在John Papa的MEAN Hot Tobble应用程序中以server.js为基础对服务器代码进行建模,该应用程序在他的Pluralsight吞咽课程中使用。这是我的服务器代码: var express = require('express'); var app = express(); var port = process.env.PORT || 7203; var environmen

我有一个完全在浏览器中运行的Angular客户端应用程序。我正在尝试使用expressjs来托管它。我在John Papa的MEAN Hot Tobble应用程序中以server.js为基础对服务器代码进行建模,该应用程序在他的Pluralsight吞咽课程中使用。这是我的服务器代码:

var express = require('express');
var app = express();
var port = process.env.PORT || 7203;
var environment = process.env.NODE_ENV;

console.log('About to crank up node');
console.log('PORT=' + port);
console.log('NODE_ENV=' + environment);

app.get('/ping', function(req, res) {
    console.log(req.body);
    res.send('pong');
});

console.log('** DEV **');
app.use(express.static('./src/app'));
app.use(express.static('./'));
app.use(express.static('./temp'));
app.use('/*', express.static('./src/index.html'));

app.listen(port, function() {
    console.log('Express server listening on port ' + port);
    console.log('env = ' + app.get('env') +
        '\n__dirname = ' + __dirname +
        '\nprocess.cwd = ' + process.cwd());
});

当我导航到localhost:port/ping时,我得到了pong。当我导航到localhost:port/I时,我得到一个404错误。有人能告诉我我做错了什么吗?

正如@tommyd456在上面的评论中所述,您需要为“/”声明一个路由,如下所示:

app.get('/', function(req, res) {
    res.send('Hello!');
});
从express中,似乎express.static文件夹为目标

因此,替换
app.use('/*',express.static('./src/index.html')
app.use('/*',express.static('./src'))编写
修复您的问题,index.html将在“localhost:port/”下提供

因此,经过数小时的修改和阅读,我替换了以下代码:

app.use(express.static('./src/app'));
app.use(express.static('./'));
app.use(express.static('./temp'));
app.use('/*', express.static('./src/index.html'));
为此:

app.use(express.static(__dirname));
app.use(express.static(process.cwd()));

app.route('/*')
    .get(function(req, res) {
        res.sendFile(__dirname + '/index.html');
    });

它似乎已经解决了这个问题

我知道,你还没有找到一条路径来处理
/
,但是John Papa的应用程序也没有,我已经看到很多例子显示“/*”是express angular Apps的首选,我只使用了*而不使用/来处理catch all Part OK,这让我得到了index.html,但我仍然在所有其他应用程序文件上收到404个错误。