如何在axios的PUT请求中传递参数?

6
axios.put('http://localhost:3000/api/userDatas/findUserAddProp',{
    params: {
        userId: "5bb8c3bd16bf1f515ce5b42f",
        prop: "questions",
        questionId: "5bb8c466cb49d8421c05eeda"
    }
});

服务器

Userdatas.findUserAddProp = function(req, res, cb) {
    const queryId = req.query.userId;
    const propToUpdate = req.query.prop;
    const questionId = req.query.questionId;

    console.log("queryId: ", queryId);
    console.log("propToUpdate: ", propToUpdate);
    console.log("questionId: ", questionId);
    ...
}

这是控制台上的服务器输出。

queryId:  undefined
propToUpdate:  undefined
questionId:  undefined

为什么会发生这种情况?我已经将所有参数都传递给了服务器。

请检查 console.log(req.body) - IftekharDani
你解决了这个问题吗? - spazzola
3个回答

3

put方法需要一个额外的参数"data"(在请求体中发送):

axios.put(url[, data[, config]])

把它作为 null 传递即可完成:

axios.put('http://localhost:3000/api/userDatas/findUserAddProp', **null,** {
...

1
您可以打开Axios接口。
put<T = any, R = AxiosResponse<T>>(url: string, data?: any, config?: AxiosRequestConfig): Promise<R>;

Put方法接收数据后的配置,因此您可以这样做:
axios.put('http://localhost:3000/api/userDatas/findUserAddProp',
  // Add null here in the data,
   null,
   // then you can give params in the config 
  { params: { /* your params goes here */ }
});

0

你尝试过了吗?

req.params.userId

req.param 用于读取 URL 参数,例如 /user/:id,而 req.query 用于读取查询参数,例如 http:localhost:8080/api/users?id=123


谢谢@SaqibHussain。我认为你的解释和建议是相互矛盾的。 - Henok Tesfaye
你能分享一下你是如何在服务器端处理这个请求的吗? - Saqib Hussain

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接