Windsurf 从零开始:手把手教你构建完整的博客网站

本文将带你从零开始,使用 Windsurf 框架构建一个功能齐全的博客网站。无论你是编程新手还是有一定经验的开发者,这篇教程都将一步一步地引导你完成整个项目。通过本教程,你将掌握如何使用 Windsurf 构建自己的 Web 应用程序。

目录

  1. 项目介绍
  2. 环境准备
  3. 创建 Windsurf 项目
  4. 项目结构
  5. 构建博客首页
  6. 用户注册与登录
  7. 创建博客文章
  8. 查看博客文章
  9. 编辑与删除博客文章
  10. 部署项目
  11. 最后

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




My Blog

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.ejslogin.ejs 文件:

register.ejs:

html




Register

Register









login.ejs:

html




Login

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

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




My Blog

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

Edit Post

Title:
Content:




10. 部署项目

10.1 使用 PM2 部署

安装 `pm2

上一篇 2025年3月23日
下一篇 2025年3月23日

热门推荐