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

节点。js快递。json和express。使用表单提交进行URL编码

公孙国兴
2023-03-14

Express(或Connect)的bodyParser中间件被标记为已弃用,建议用户改用:

app.use(connect.urlencoded())
app.use(connect.json())  

然而,当我从节点运行示例时。在实际操作中,我使用curl按照书中的建议填写表格:

curl -F entry[title]='Ho ho ho' -F entry[body]='santa loves you' http://abc:123@127.0.0.1:3000/api/entry

这不管用<代码>请求。未定义正文。我错过什么了吗?它可以与bodyParser配合使用。

截至:4

按以下方式解析json:

var bodyParser = require('body-parser');

...

app.use(bodyParser.json());

以这种方式解析urlencoded body:

app.use(bodyParser.urlencoded({extended: true}));

那么就没有弃用警告了。extended:true(默认)使用qs模块,false使用querystring模块解析主体。

不要使用应用程序。使用(bodyParser()),这种用法现在已被弃用。

共有1个答案

方子安
2023-03-14

body Parser实际上是三个中间件的组成(请参阅留档和相关源代码):jsonurlencodedmultipart

  • jsonparsesapplication/jsonrequest body

如果只指定jsonurlencoded中间件,则任何中间件都不会解析表单数据,因此req。不会定义body。然后,您需要添加一个中间件,该中间件能够解析表单数据,如Foremble、busboy或multiparty(如connect的文档中所述)。

下面是一个例子,使用多方

var multipart = require('connect-multiparty');
var multipartMiddleware = multipart();
app.use('/url/that/accepts/form-data', multipartMiddleware);
app.post('/url/that/accepts/form-data', function(req, resp) {
    console.log(req.body, req.files);
});

不要忘记,通过使用这些中间软件,你可以让任何人将文件上传到你的服务器上:处理(和删除)这些文件是你的责任。

 类似资料:
  • 问题内容: Express(或Connect的)bodyParser中间件已标记为已弃用,建议用户改为使用: 但是,当我从 Action中的Node.js 运行示例时,我使用curl来按照书中的建议填写表格: 没用 没有定义。我想念什么吗?它与bodyParser一起正常工作。 编辑:自Express 4起的解决方案 以这种方式解析json: 通过以下方式解析urlencoded主体: 则没有弃用

  • 本文向大家介绍js创建表单元素并使用submit进行提交,包括了js创建表单元素并使用submit进行提交的使用技巧和注意事项,需要的朋友参考一下 js 创建form、input元素,并设置form的action及method,最后使用submit进行提交

  • 我有一个用jade创建的表单,单击submit按钮时它不会回发。我研究了许多类似的问题,尝试了解决方案,包括确保所有输入字段都有一个“名称”,我确保所有输入字段都有一个名称,但表单仍然没有发回,如图所示 //视图/用户/新建。玉 h1新用户 表单(action=“/users”,method=“POST”) p 标签(for="username")用户名 输入#用户名(name=“username

  • 新问题! 我得到了要显示的网页,并且能够检索和显示用户输入。 然而,我的代码只允许一个用户输入,如果我在超文本标记语言中添加另一个输入字段,其余的将是未定义的。 这是更新的代码,其中只会显示姓氏。 我可以尝试检索两个用户输入吗??谢谢 ========================================================================= 我有下面的代码,

  • 问题内容: 目前,我的AJAX正在这样工作: index.php 一个.php ajax.js 上面的代码运行完美。当我单击链接 “ One”时, 将执行 one.php 并将字符串 “ One” 加载到 工作区DIV中 。 现在,我想使用AJAX提交表单。例如,我在 index.php中 有一个这样的表单。 当我提交表单时, one.php 应该在工作区DIV中打印文本框值。 如何编码js以使用

  • 我在和。他们每个人具体做什么?