对于简单的HTML、CSS、JavaScript前端,我们可以通过几种方式连接后端

  1. 使用Fetch API发送HTTP请求(最简单的方式):
javascript 复制代码
//home.html
// 示例:提交表单数据到后端
const submitForm = async (formData) => {
    try {
        const response = await fetch('http://your-backend-url/api/submit', {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json',
            },
            body: JSON.stringify(formData)
        });
        
        if (!response.ok) {
            throw new Error('提交失败');
        }
        
        const result = await response.json();
        alert('提交成功!');
        
    } catch (error) {
        console.error('Error:', error);
        alert('提交失败,请重试');
    }
};

// 使用示例
document.querySelector('form').addEventListener('submit', (e) => {
    e.preventDefault();
    const formData = {
        name: document.getElementById('name').value,
        major: document.getElementById('major').value,
        studentId: document.getElementById('studentId').value,
        qq: document.getElementById('qq').value,
        message: document.getElementById('message').value
    };
    submitForm(formData);
});

2.简单的后端服务器示例(Node.js + Express)。

javascript 复制代码
//serve.js
const express = require('express');
const cors = require('cors');
const app = express();

// 启用CORS和JSON解析
app.use(cors());
app.use(express.json());

// 处理表单提交
app.post('/api/submit', (req, res) => {
    const formData = req.body;
    
    // 这里可以添加数据库操作
    console.log('收到的表单数据:', formData);
    
    // 返回响应
    res.json({
        success: true,
        message: '表单提交成功'
    });
});

// 启动服务器
const PORT = 3000;
app.listen(PORT, () => {
    console.log(`服务器运行在 http://localhost:${PORT}`);
});

3.如果需要数据库支持,可以添加MongoDB:

javascript 复制代码
//serve.js
const mongoose = require('mongoose');

// 连接MongoDB
mongoose.connect('mongodb://localhost/309base', {
    useNewUrlParser: true,
    useUnifiedTopology: true
});

// 定义数据模型
const Application = mongoose.model('Application', {
    name: String,
    major: String,
    studentId: String,
    qq: String,
    message: String,
    submitTime: { type: Date, default: Date.now }
});

// 处理表单提交
app.post('/api/submit', async (req, res) => {
    try {
        const application = new Application(req.body);
        await application.save();
        
        res.json({
            success: true,
            message: '申请已保存'
        });
    } catch (error) {
        res.status(500).json({
            success: false,
            message: '保存失败'
        });
    }
});

4.部署注意事项:

javascript 复制代码
// 配置文件 config.js
const config = {
    development: {
        apiUrl: 'http://localhost:3000',
        mongoUrl: 'mongodb://localhost/309base'
    },
    production: {
        apiUrl: 'https://your-production-api.com',
        mongoUrl: process.env.MONGODB_URI
    }
};

// 根据环境选择配置
const env = process.env.NODE_ENV || 'development';
module.exports = config[env];

主要步骤:

1.前端:

使用Fetch API发送请求

处理响应和错误

添加加载状态提示

2.后端:

设置基本的Express服务器

处理CORS问题

连接数据库

处理请求和响应

3.数据库:

选择合适的数据库(如MongoDB)

设计数据模型

处理数据存储和查询

4.部署:

选择合适的托管服务

配置环境变量

处理安全问题

这是一个基本的前后端连接方案,你可以根据需要进行扩展和修改。

相关推荐
阿珊和她的猫4 小时前
v-scale-scree: 根据屏幕尺寸缩放内容
开发语言·前端·javascript
加班是不可能的,除非双倍日工资8 小时前
css预编译器实现星空背景图
前端·css·vue3
wyiyiyi9 小时前
【Web后端】Django、flask及其场景——以构建系统原型为例
前端·数据库·后端·python·django·flask
gnip9 小时前
vite和webpack打包结构控制
前端·javascript
excel9 小时前
在二维 Canvas 中模拟三角形绕 X、Y 轴旋转
前端
阿华的代码王国10 小时前
【Android】RecyclerView复用CheckBox的异常状态
android·xml·java·前端·后端
一条上岸小咸鱼10 小时前
Kotlin 基本数据类型(三):Booleans、Characters
android·前端·kotlin
Jimmy10 小时前
AI 代理是什么,其有助于我们实现更智能编程
前端·后端·ai编程
ZXT10 小时前
promise & async await总结
前端
Jerry说前后端10 小时前
RecyclerView 性能优化:从原理到实践的深度优化方案
android·前端·性能优化