【问题标题】:userId dosen't get into the mongoose schemauserId 不会进入 mongoose 模式
【发布时间】:2022-02-11 20:27:35
【问题描述】:

我正在尝试发送一个发布请求来为用户创建一个新任务,每个任务的猫鼬模式是:

let todoSchema = new AppSchema ({
    userId: String,
    title: String,
    completed: Boolean
}, {versionKey: false})

当我发送请求时,任务是在没有用户 ID 的情况下创建的。 这是请求:

add = () => {
        const task = {
            userId: this.props.id,
            title: this.state.title,
            completed: false,
        }

        if(task.title) {
            axiosUtils.create('http://localhost:8000/todos/', task)
            alert('task created!')
        }

    }

*task.userId的typeof是string,是具体用户toString()的mongoDB_id

【问题讨论】:

  • 调用时是否定义了“this.props.id”?
  • 是的,当我使用 console.log(task.userId) 运行该函数时,它会显示 id

标签: reactjs mongodb mongoose axios mongoose-schema


【解决方案1】:

函数axios.create()只是创建一个带有指定配置的axios实例来发送请求,但实际上并没有发送任何请求。 Here's 关于如何使用 axios 发送 POST 请求的文档。

【讨论】:

  • 这不是问题,请求发送得很好并创建了新任务。问题是用户 ID,它无法访问任务文档
【解决方案2】:

您正在做axios.create(),它用于创建 axios 的实例。 要了解更多关于axios.create() 的信息,您可以参考 axios 官方文档: https://axios-http.com/docs/instance

为了创建一个任务,您需要发出一个发布请求,例如:

axios.post("http://localhost:8080/todos/", { taskParam: task })

这里的 taskParam 是您很可能用于在 req.body 中接受后端任务的变量的名称。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-21
    • 2017-02-10
    • 1970-01-01
    • 1970-01-01
    • 2018-11-06
    相关资源
    最近更新 更多