实际上,把nodejs服务器和react前端放在同一个目录中是可能的,但这并不是一种好的做法。应该将后端和前端代码分离开来,以便更好地进行维护和扩展。
以下是一个常见的项目目录结构示例:
my-app/
server/
index.js
client/
src/
public/
package.json
package.json
在上面的示例中,server
目录中包含了Node.js服务器的代码,而client
目录中则包含了React前端的代码。每个目录都有自己的package.json
文件,并且可以在其中安装依赖项。
可以将server
目录中的Node.js服务器代码通过以下方式进行引用:
const express = require('express');
const app = express();
// middlewares and routes
app.listen(8080, () => {
console.log('Server is running on port 8080.');
});
在client
目录中的React前端代码可以通过以下方式进行引用:
import React from 'react';
import ReactDOM from 'react-dom';
ReactDOM.render(
,
document.getElementById('root')
);
最终的项目构建可以通过 npm run build
命令来打包,在此之后生成的前端代码会被放置在build
目录中。
尽管将Node.js服务器和React前端放在相同的目录中不是一种好的做法,但如果仍希望使用该方法,则可以使用以下结构:
my-app/
index.js
package.json
src/
App.js
index.js
server.js
在这种情况下,index.js
会是一个代理服务器,负责转发前端请求和后端请求。
const express = require('express');
const app = express();
const path = require('path');
app.use(express.static(path.join(__dirname, 'build')));
app.get('/api', (req, res) => {
res.send('This is a sample server response.');
});
app.get('/', (req, res) => {
res.sendFile(path.join(__dirname+'/build/index.html'));
});
app.listen(9000, () => {
console.log('Server is running on port 9000.');
});
在这个
上一篇:Banno中的外部应用程序仪表板