当前位置: 首页 > 知识库问答 >
问题:

React、node js、mongoDB——如何使用FormData发布、放置和删除?

凤扬
2023-03-14

如何使用formdata创建邮政服务?

我用Axios发送了formdata。但是,节点快递服务器上的“req.body.title”值是空的。所以现在我用以下格式发送抓取。但是我需要将文件上传到服务器,所以我想用formData发送它。

let bodys = 'title=a1&contents=b'
fetch("http://localhost:5000/test", {
            method : 'post',
            headers : {
                'Content-type' : 'application/x-www-form-urlencoded; charset=UTF-8'
            },
            body: bodys
        })
        .then(function(response){
            console.log('Request Succeded ', response);
        })
        .catch(function (error){
            console.log('Failed ', error)
        })

我使用append和new FormData()编写了新数据,我检查了FormData在React上包含一个值。但是,节点快递服务器没有进入正文。

请让我知道该怎么做。。。

共有2个答案

刘奇
2023-03-14

你发送的只是一个字符串

你可以像下面这样接近你的身体

  let bodys = 'title=a1&contents=b'
 console.log(req.body); //will print title and contents as you are sending

如果想单独访问标题和内容,则必须将数据作为对象发送

  const bodys = {“title”: “a1”, “contents”: “b”}
  console.log(“title”, req.body.title); //will print a1
  console.log(“contents”, req.body.contents); //will print b

查看此线程以了解更多详细信息https://github.com/github/fetch/issues/263

秦凯旋
2023-03-14

尝试将FormData对象而不是原始字符串作为请求正文发送。

const bodys = new FormData();

bodys.append('title', 'a1');
bodys.append('contents', 'b');

此表格数据将按要求提供。快车里的尸体。js服务器。

编辑:在express中解析FormData。js,你需要一个像multer这样的中间件

const upload = require('multer');

app.use('/', upload.any(), yourRouteHandler);
 类似资料:
  • Aplicação fullstack utilizando MongoDB, NodeJs, React e Redux Backend features O banco de dados Mongo foi hospedado no MLab por conveniência.Foi implementado gravatar para foto de perfil, se o email d

  • 我尝试了很多次,但得到以下错误 http://localhost:3001/getlocaiton net::err_connection_delection和createError(createError.js:17)位于xmlHttpRequest.handleerror(xhr.js:87)。

  • 我使用SendGrid向用户发送带有两个参数(用户id和令牌)的重置密码链接。我有另一个组件可以保存用户更改的密码,但我得到的只是一个错误用户。保存不是一个函数 电子邮件帮助程序代码。 SendLink组件 尝试更新数据库中的密码但我得到错误的组件user.save()不是函数 我的路线

  • 我已经将我的nodejs应用程序配置为使用MongoDB。我可以成功地连接和添加数据到我的mongodb实例。我的应用程序配置如下(敏感信息编辑): 如果我点击endpoint,那么pizza文档就会很好地在数据库中创建,但我注意到连接从未关闭;这意味着endpoint从不将“all good”字符串作为响应发送。而且,对的任何后续请求都会抛出以下错误: 我似乎没有正确处理promise和asyn

  • 问题内容: 我正在尝试使用nodejs和node_redis构建一个通用的发布/订阅服务器,该服务器接收带有通道名称的浏览器的请求,并以该通道也已发布的任何数据作为响应。为此,我使用了来自浏览器的长轮询请求,并通过在通道上收到消息时发送响应来处理这些请求。 对于每个新请求,都会创建一个对象来订阅该频道(如果且仅当该频道不存在时)。 这是处理订阅渠道的最佳方法,还是还有其他更直观的方法? 问题答案:

  • 问题内容: 这是一种提交方法: 有可能做下面的事情吗? 我如何从中删除或修改值 问题答案: 除了将项目追加到FormData对象之外,您不能执行任何其他操作。参见规格。如果在实际构造对象之前使用词典/对象存储要添加/修改的所有值,那会更好。