撸了一个看知乎 React 版本的 Nodejs 应用
撸了一个看知乎 React 版本的 Nodejs 应用
2 回复
你好!很高兴你对开发基于React和Node.js的应用感兴趣。下面是一个简单的示例,展示如何用Node.js作为后端服务,React作为前端框架来构建一个类似知乎的应用原型。由于篇幅限制,这个示例将非常简化,只涉及基本架构。
后端(Node.js + Express)
首先,安装必要的依赖:
npm init -y
npm install express cors body-parser
创建一个简单的Express服务器:
const express = require('express');
const cors = require('cors');
const bodyParser = require('body-parser');
const app = express();
app.use(cors());
app.use(bodyParser.json());
app.get('/api/questions', (req, res) => {
res.json([{ id: 1, title: 'Question 1' }, { id: 2, title: 'Question 2' }]);
});
app.listen(3001, () => console.log('Server running on port 3001'));
前端(React)
创建一个React应用(假设你已经安装了create-react-app
):
npx create-react-app zhihu-clone
cd zhihu-clone
npm start
在src/App.js
中,使用fetch
从后端获取数据:
function App() {
const [questions, setQuestions] = useState([]);
useEffect(() => {
fetch('/api/questions')
.then(res => res.json())
.then(data => setQuestions(data));
}, []);
return (
<div>
{questions.map(q => <div key={q.id}>{q.title}</div>)}
</div>
);
}
注意,前端需要配置代理以访问后端API:在package.json
中添加"proxy": "http://localhost:3001"
。
这个示例展示了前后端的基本交互,实际应用中需根据需求扩展。