本文将带你从零开始,使用 Windsurf 框架构建一个功能齐全的博客网站。无论你是编程新手还是有一定经验的开发者,这篇教程都将一步一步地引导你完成整个项目。通过本教程,你将掌握如何使用 Windsurf 构建自己的 Web 应用程序。
目录
- 项目介绍
- 环境准备
- 创建 Windsurf 项目
- 项目结构
- 构建博客首页
- 用户注册与登录
- 创建博客文章
- 查看博客文章
- 编辑与删除博客文章
- 部署项目
- 最后
1. 项目介绍
我们将构建一个简单的博客网站,支持用户注册、登录,以及博客文章的创建、查看、编辑和删除功能。项目将涵盖 Windsurf 的核心功能,包括路由、中间件、模板引擎和数据库集成。
2. 环境准备
在开始之前,请确保你的开发环境已配置完成:
- Node.js:从 Node.js 官网下载并安装。
- npm:Node.js 自带 npm,用于安装依赖包。
- 代码编辑器:推荐使用 Visual Studio Code。
安装完成后,打开终端并运行以下命令,确保 Node.js 和 npm 已正确安装:
bash
node -v
npm -v
3. 创建 Windsurf 项目
首先,创建一个新的项目目录,并在该目录下初始化一个 Node.js 项目:
bash
mkdir my-blog
cd my-blog
npm init -y
接下来,安装 Windsurf 和一些必要的依赖:
bash
npm install windsurf express mongoose ejs
4. 项目结构
我们的项目结构如下:
my-blog/
├── app.js
├── models/
├── views/
├── public/
│ └── css/
└── routes/
5. 构建博客首页
5.1 配置 Windsurf
首先,在 app.js
中配置 Windsurf:
javascript
const express = require(‘express’);
const app = express();
app.set(‘view engine’, ‘ejs’);
app.use(express.static(‘public’));
app.get(‘/’, (req, res) => {
res.render(‘home’);
});
app.listen(3000, () => {
console.log(‘Server is running on http://localhost:3000’);
});
5.2 创建首页路由
5.3 创建首页模板
在 views
目录下创建 home.ejs
文件:
html
Welcome to My Blog
5.4 添加样式
在 public/css
目录下创建 style.css
文件:
css
body {
font-family: Arial, sans-serif;
margin: 0;
padding: 0;
}
5.5 启动服务器
在终端中运行以下命令启动服务器:
bash
node app.js
打开浏览器,访问 http://localhost:3000
,你应该会看到博客的首页。
6. 用户注册与登录
6.1 配置会话
6.2 创建用户模型
在 models
目录下创建 User.js
文件:
javascript
const mongoose = require(‘mongoose’);
const userSchema = new mongoose.Schema({
username: String,
password: String,
});
module.exports = mongoose.model(‘User’, userSchema);
6.3 连接数据库
在 app.js
中连接 MongoDB:
javascript
const mongoose = require(‘mongoose’);
mongoose.connect(‘mongodb://localhost:27017/my-blog’);
6.4 用户注册
6.5 用户登录
6.6 创建注册与登录模板
在 views
目录下创建 register.ejs
和 login.ejs
文件:
register.ejs:
html
Register
login.ejs:
html
Login
7. 创建博客文章
7.1 创建文章模型
在 models
目录下创建 Post.js
文件:
javascript
const mongoose = require(‘mongoose’);
const postSchema = new mongoose.Schema({
title: String,
content: String,
author: String,
});
module.exports = mongoose.model(‘Post’, postSchema);
7.2 创建文章路由
在 app.js
中添加创建文章的路由:
javascript
app.post(‘/create-post’, (req, res) => {
const { title, content } = req.body;
const post = new Post({ title, content, author: req.session.user.username });
post.save();
res.redirect(‘/’);
});
7.3 创建文章模板
在 views
目录下创建 create-post.ejs
文件:
html
Create Post
8. 查看博客文章
8.1 显示所有文章
在 app.js
中添加显示所有文章的路由:
javascript
app.get(‘/’, async (req, res) => {
const posts = await Post.find();
res.render(‘home’, { posts });
});
8.2 更新首页模板
更新 home.ejs
文件以显示所有文章:
html
Welcome to My Blog
-
<% posts.forEach(post => { %>
-
<%= post.title %>
<%= post.content %>
By: <%= post.author %>
<% }) %>
9. 编辑与删除博客文章
9.1 编辑文章
9.2 删除文章
在 app.js
中添加删除文章的路由:
javascript
app.post(‘/delete-post/:id’, (req, res) => {
Post.findByIdAndDelete(req.params.id);
res.redirect(‘/’);
});
9.3 创建编辑文章模板
在 views
目录下创建 edit-post.ejs
文件:
html
Edit Post
10. 部署项目
10.1 使用 PM2 部署
安装 `pm2