在使用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'
谢谢。
答案 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()
的第二个参数,该参数未使用,因此将被忽略。