我目前正在使用MERN堆栈构建一个简单的应用程序以进行学习。我到目前为止所做的:
好吧,除了一件事之外,一切都运转良好并且符合预期。
我尝试将API用于任何请求,但同时我希望我的整个应用程序都可以在Web浏览器(TODO列表)中进行渲染。因此,我遵循的过程是:
我对如何在节点项目中使用React build进行了研究,并且做了以下工作:
app.use(express.static('myproject/build'));
app.get('/*', (req, res) => {
res.sendFile(path.resolve(__dirname, 'myproject', 'index.html'));
});
好!因此,当我转到http://localhost:4000时,它会呈现我的索引文件,并且实际上可以与我的Login API一起使用,但是我有一些API仅可用于消费数据而不呈现UI。
所以,我的问题是,运行该应用程序时,如果我转到:http://localhost:4000/api/users/getdata 我收到一条错误消息:错误:ENOENT:没有这样的文件或目录指向index.html
好吧,如果我取消注释之前发布的代码,那么我的应用程序当然不会呈现UI,但是从API的路由正常工作。
我知道这可能是设置/配置过程,但是我正在尽力了解这一点。如果有人可以帮助我解决这个问题。
正在工作的层次结构如下:
myproject(包含模型,路由(API),中间件,index.js)
答案 0 :(得分:0)
我做了@MaxAlex的建议。更改了以下代码:
app.get('/*')
到
app.get('/')