如何在同一节点服务器上提供React app和Api?

时间:2018-02-09 11:24:58

标签: node.js reactjs express single-page-application

我正在尝试在同一台服务器上提供我内置的react app + api。

我试过这个代码:

const express = require('express');
const bodyParser = require('body-parser')
const path = require('path');
const app = express();
app.use(express.static(path.join(__dirname, 'build')));

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

app.get('/', function (req, res) {
    res.sendFile(path.join(__dirname, 'build', 'index.html'));
});

app.listen(process.env.PORT || 8080);

但是,无论我在浏览器中使用的是什么网址,它都可以提供index.html taht内部' build'文件夹(我的反应应用程序)。 localhost:8080 / ping服务于index.html和非'。

我的代码有什么问题?

谢谢,

1 个答案:

答案 0 :(得分:1)

Serve static files and app.get conflict using Express.js

将index.html文件重命名为其他内容。就这么简单

app.use(express.static(__dirname + '/public'));

app.get('/', function(req, res){
    if(req.session){
        console.log(req.session);
    }
    console.log('ok');
    res.sendfile(new_index_file);
});