在NodeJS应用程序中查询$ .get(),Express和JSON

时间:2018-08-20 06:22:46

标签: jquery json node.js express

在使用Express的NodeJS应用程序中,我使用以下查询将数据从客户端发送到服务器

$('#frmadd').on('submit',function(e){
    e.preventDefault();
    form_elements = $('#frmadd').serializeArray();
    $.get('/add_details',{input: form_elements})
    .done(function(data){
      //SOME STATEMENTS
  },'json');  

然后我在服务器端使用bodyParser,并在上述代码的末尾附加了'json'。我已经读到它会将数据流转换为JSON格式并将其发送到服务器。

我还读到EXPRESS实际上负责JSON转换,即在从客户端发送到服务器时对对象进行字符串化,从服务器发送到客户端时自动进行解析。那么在那种情况下,为什么我们需要在代码中附加'json'?如果我错了,请纠正我。

在以上代码中,添加或不添加'json'也没有任何区别。我可以很高兴地在服务器端访问数据对象。那么,附加'json'

可以提供什么额外的用途

谢谢。

2 个答案:

答案 0 :(得分:1)

IT用于设置数据的内容类型

答案 1 :(得分:1)

您的请求中没有我知道的JSON。您要传递给$.get(url, dataObject)的对象将以prop=val对的形式放入查询字符串中。 Express body-parser模块为您解析查询字符串,并将结果放入req.query中。

查询字符串中的数据是由jQuery编码的查询字符串,然后由Express中的body-parser模块解码和解析。

如果您要进行POST,则可以决定是将数据编码为JSON还是以表单编码,但是对于GET请求,数据都放在始终为URL编码的查询字符串中。

仅供参考,您在代码中显示的'json'参数将显示为.done()的第二个参数,该参数未使用,因此将被忽略。