撸了一个看知乎 React 版本的 Nodejs 应用

发布于 1周前 作者 nodeper 来自 nodejs/Nestjs

撸了一个看知乎 React 版本的 Nodejs 应用

调用的苏莉安大大的看知乎 api

Based on react 、 react-router 、 material-ui

初学者,欢迎交流,(*  ̄ 3)(ε ̄ *)

repo: https://github.com/2yuri/react-kanzhihu


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"

这个示例展示了前后端的基本交互,实际应用中需根据需求扩展。

回到顶部