uni-app中uni-form组件在app中校验时提示提交的字段在数据库中并不存在是什么意思

发布于 1周前 作者 caililin 来自 Uni-App

uni-app中uni-form组件在app中校验时提示提交的字段在数据库中并不存在是什么意思

Image

1 回复

在uni-app中,使用uni-form组件进行表单校验时遇到“提交的字段在数据库中并不存在”的提示,通常意味着表单提交的数据中包含了后端数据库未定义的字段。这可能是由于前端表单设计与后端数据库结构不一致所导致的。为了解决这个问题,我们需要确保前端提交的数据字段与后端数据库接收的字段完全匹配。

以下是一个简单的代码示例,展示了如何在uni-app中使用uni-form组件,并确保提交的字段与后端数据库字段一致:

前端代码(uni-app)

<template>
  <view>
    <uni-form :model="formData" @submit="handleSubmit">
      <uni-form-item label="用户名" name="username" rules="[{ required: true, message: '请输入用户名' }]">
        <uni-input v-model="formData.username"></uni-input>
      </uni-form-item>
      <uni-form-item label="邮箱" name="email" rules="[{ required: true, type: 'email', message: '请输入有效的邮箱' }]">
        <uni-input v-model="formData.email"></uni-input>
      </uni-form-item>
      <button type="primary" @click="submitForm">提交</button>
    </uni-form>
  </view>
</template>

<script>
export default {
  data() {
    return {
      formData: {
        username: '',
        email: ''
      }
    };
  },
  methods: {
    submitForm() {
      this.$refs.form.validate((valid) => {
        if (valid) {
          this.handleSubmit();
        } else {
          console.log('表单校验失败');
          return false;
        }
      });
    },
    handleSubmit() {
      uni.request({
        url: 'https://your-backend-api.com/submit',
        method: 'POST',
        data: this.formData,
        success: (res) => {
          console.log('提交成功', res.data);
        },
        fail: (err) => {
          console.error('提交失败', err);
        }
      });
    }
  }
};
</script>

后端代码(示例,假设使用Node.js + Express)

const express = require('express');
const bodyParser = require('body-parser');
const app = express();

app.use(bodyParser.json());

app.post('/submit', (req, res) => {
  const { username, email } = req.body;
  
  // 假设数据库有一个users表,包含username和email字段
  // 这里仅做示例,实际应连接数据库并验证字段
  if (!username || !email) {
    return res.status(400).json({ error: '提交的字段不完整' });
  }

  // 假设数据库操作成功
  res.status(200).json({ message: '提交成功' });
});

app.listen(3000, () => {
  console.log('Server is running on port 3000');
});

确保前端提交的字段(如usernameemail)与后端数据库中的字段完全一致。如果后端数据库结构发生变化,前端表单也需要相应更新。

回到顶部