node.js+express 获取客户端dojo.put 的数据问题?
发布于 12 年前 作者 gangyi11 4757 次浏览 最后一次编辑是 8 年前

问题比较小白,各位海涵。

客户端dojo

服务端 node.js+express

需求这样。客户端调用

xhr.put({ url: “workspace/project1/doc/123.html”, putData: “ssssssssssssssss”, handleAs: “text”, contentType: “text/html” });

期望在服务端对应目录生成123.HTML这个文件,数据为putData里面的。

服务端怎么搞?目前服务端代码如下。

app.put(’.’,function(req, res){ console.log(req.params); console.log(req.putData);

//收到数据调用 fs模块刷磁盘。 不知道怎么写了?

}); 请指教????

5 回复

截取了下报文,数据有但是不知道拿? PUT http://127.0.0.1:3000/workspace/project1/doc/123.html HTTP/1.1 Host: 127.0.0.1:3000 User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:20.0) Gecko/20100101 Firefox/20.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8 Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate Content-Type: text/html; charset=UTF-8 X-Requested-With: XMLHttpRequest Referer: http://127.0.0.1:3000/ Content-Length: 16 Connection: keep-alive

ssssssssssssssss

这两句输出是什么?

console.log(req.params);
console.log(req.putData);

最终我有调试了下代码? 发现客户端其实就这样 xhr.open(“put”,“123.html”,true); xhr.send(“aaaaaaaaa”);

服务端 怎么获取 xhr.send 参数数据啊?

包里面也有 如下 PUT http://127.0.0.1:3000/workspace/project1/doc/123.html HTTP/1.1 Host: 127.0.0.1:3000 User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:20.0) Gecko/20100101 Firefox/20.0 Accept: textml,application/xhtml+xml,application/xml;q=0.9,/;q=0.8 Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate Content-Type: textml; charset=UTF-8 X-Requested-With: XMLHttpRequest Referer: http://127.0.0.1:3000/ Content-Length: 18 Connection: keep-alive

bbbbbbbbbbbbbbbbbb

摸索出来了。补充一下在。

如果是带参数方式如 123.html?id=aa&name=xxx 这种常规拿即可。如果直接put数据 即

xhr.open(“put”,“123.html”,ture);

xhr.send(“aaaaaa”);//

要获取send参数的话。服务端修改如下即可。

app.put(’.’,function(req, res){ var putData = “”; req.on(“data”, function(postDataChunk) { putData += postDataChunk; }); req.on(“end”, function() { console.log(“all data is '” + putData + “’.”); //返回标示 res.end(“ok”); }); });

回到顶部