2015-06-20 80 views
2

我有一个完全在浏览器中运行的Angular客户端应用程序。我正在尝试使用expressjs来托管它。我在John Papa的MEAN Hot Towel应用程序中的server.js之后模拟了服务器代码,该应用程序在他的Pluralsight Gulp课程中使用。这是我的服务器代码:ExpressJs不提供index.html

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时,我得到了乒乓回来。当我导航到本地主机:端口/我得到一个404错误。有人能告诉我我在这里做错了吗?

+0

你有没有一个路线'/ ' – tommyd456

+0

我知道了,但约翰帕帕的申请没有,我也看到了一些例子显示'/ *'作为快递角度应用的下降 – pthalacker

+0

我只使用*而没有/ – tommyd456

回答

0

这么多时间摆弄和阅读后,我更换了这段代码:

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'); 
    }); 

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

0

正如@ tommyd456在上面的评论说,你需要声明一个路线“/”,像这样:

app.get('/', function(req, res) { 
    res.send('Hello!'); 
}); 
0

从快递documentation,似乎express.static目标的文件夹
因此,通过app.use('/*', express.static('./src'));更换app.use('/*', express.static('./src/index.html'));解决您的问题和index.html会下享用“本地主机:端口/”

+0

好的,这让我有了index.html,但我仍然在所有其他应用程序文件上收到404错误。 – pthalacker

相关问题