sir*_*day 5 javascript json curl heroku
我有一个部署到Heroku实例的Express/Node应用程序.该应用程序具有POST api端点,该端点需要.json文件,读取数据并使用JSON数据填充应用程序.下面是处理POST请求的后端代码:
router.route('/data')
.post(function (req, res) {
return DataUtils.storeData(req, res);
});
Utils.storeData = function (req, res) {
req.pipe(req.busboy);
req.busboy.on('file', function (fieldname, file, filename) {
file.on('data', function(data) {
var data;
try {
data = JSON.parse('' + data); // quick casting into a String
var numPersonSessionObj = data.length;
...
// etc etc...
Run Code Online (Sandbox Code Playgroud)
当我们尝试通过下面的curl命令发出请求时:
curl -H"Content-Length:5567"-F file=@sample_data/sample_json.json http:// [heroku-instance]/api/data
服务器有时工作正常,上传数据,有时会抛出"意外的输入结束"错误.似乎我们使用的缓冲区方法由于某种原因没有读取所有数据.在记录data.length上面的代码(即JSON)时,似乎每当数据长度小于它应该的时候请求就会失败.我在上面的JSON文件中阅读的方式有问题吗?谢谢 -
小智 4
该data事件仅表示收到了部分数据\xe2\x80\x93,而不表示收到了所有数据。end您需要在解析 JSON 之前等待该事件。有关更多详细信息,请参阅官方文档中的此示例: https: //nodejs.org/api/stream.html#stream_api_for_stream_consumers
| 归档时间: |
|
| 查看次数: |
903 次 |
| 最近记录: |