友友们,大家好呀。今天我给大家带来的是花费不少时间带来的一篇实战文章。手把手教大家,搭建自己的Blog(博客)应用。我将从项目获取、环境搭建、后端初始化、数据库交互直至前端展示,写出实战的完整流程。当然了,期间,我也会加入一些碰到的常见且棘手的问题,比如前端静态资源加载异常等等一些问题,提供从“简单处理”到“长效优化”的解决方案。希望大家有所收获,多多点赞哦。下面正式开始吧。
前端的这些相信大家都不陌生。就不多介绍了
数据库,另一个版本是mysql的,这篇就先用MongoDB。
首先,我们需要配置后端应用与数据库的连接。
进入后端目录:cd backend
创建环境变量文件: 项目中提供了一个.env.example文件作为模板。我们复制它并重命名为.env。
编辑.env文件: 打开.env文件,填入MongoDB数据库信息。
# .env
DB_URI=mongodb://localhost:27017/blogapp
PORT=5000
3.安装依赖并启动服务
# 在backend目录下运行
npm install
# 在backend目录下运行
npm start
数据是应用的命脉。我们在后端启动后,需要确保数据库和集合都已就绪。
后端应用需要一个名为blogapp的数据库。您可以使用Robo 3T或命令行创建它。 使用Robo 3T:
这个项目的后端代码非常智能,它会在启动时自动检查所需的集合是否存在,如果不存在,则会自动创建。您无需手动创建集合结构。
当您在前端发布了几篇博客后,有多种方法可以查看数据库中的信息。 方法一:使用Robo 3T图形界面(推荐)
方法二:使用MongoDB命令行 如果您更习惯使用命令行,可以按照以下步骤操作:
npm create vite@latest blog-frontend -- --template react-ts
cd blog-frontend
npm install react-router-dom axios react-query @heroicons/react tailwindcss
npm install --save-dev @types/react-router-dom
npx tailwindcss init -p
/** @type {import('tailwindcss').Config} */
export default {
content: [
"./index.html",
"./src/**/*.{js,ts,jsx,tsx}",
],
theme: {
extend: {},
},
plugins: [],
}
src/
├── components/ # 可复用组件
├── context/ # 状态管理
├── hooks/ # 自定义hook
├── pages/ # 页面组件
├── services/ # API服务
├── types/ # 类型定义
├── App.tsx # 主应用
└── main.tsx # 入口文件
import React from 'react';
import { BrowserRouter as Router, Routes, Route } from 'react-router-dom';
import Navbar from './components/Navbar';
import Home from './pages/Home';
import Register from './pages/Register';
import Login from './pages/Login';
import Dashboard from './pages/Dashboard';
const App: React.FC = () => {
return (
<Router>
<Navbar />
<Routes>
<Route path="/" element={<Home />} />
<Route path="/register" element={<Register />} />
<Route path="/login" element={<Login />} />
<Route path="/dashboard" element={<Dashboard />} />
</Routes>
</Router>
);
};
export default App;
API和用户组件的相关代码先贴了,有点多(“——”)
cd blog-frontend
npm run dev
打开浏览器访问 http://localhost:3000,你将看到博客应用界面
“静态资源加载失败”的错误?
根本原因:
1.可以修改静态资源的引用路径,使其在file://协议下也能工作
2.前端和后端都通过http协议提供服务,它们属于不同的端口,但后端配置了cors中间件,允许来自任何源的请求。
其他问题:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。