【问题标题】:node js busboy not emitting events with angular js $http post节点 js busboy 不使用 angular js $http post 发出事件
【发布时间】:2015-02-02 12:38:04
【问题描述】:

Busboy 似乎只是卡在那里。

我已经测试了所有 3 个事件(文件、字段、完成),但没有发出任何内容。

我的角度代码如下。

$http({
    method : 'POST',
    url : mublAConfig.server + '/api/v3/user/friend',
    headers : {
        'Content-Type' : 'application/x-www-form-urlencoded',
        'Authorization' : access_token
    },
    transformRequest : function(obj) {
        var str = [];
        for (var p in obj) {
            str.push(encodeURIComponent(p) + '=' + encodeURIComponent(obj[p]));
        }
        return str.join('&');
    },
    data : {
        id : $scope.writes[0].input,
        say : $scope.writes[1].input
    }
}).success(function(data) {
    console.log('Received data : ', data);
}).error(function(data) {
    console.log('Error! ', data);
});

我对 busboy 所做的一切都在下面

req.busboy = new busboy({headers:req.headers});
req.pipe(req.busboy);
req.busboy.on('file', function(field, file, name) {
    console.log('file event');
});
req.busboy.on('field', function(name, value) {
    console.log('field event');
});
req.busboy.on('finish', function() {
    console.log('busboy finished');
});

我该如何解决?

【问题讨论】:

  • 我感觉Content-Type的手动设置和手动数据转换是没有必要的,但是你能做到req.on('data', function(d) { console.dir(d.toString()) })并把它记录到你的控制台吗?
  • 嗯.. 没有显示。所以问题出在角度部分?
  • 只是猜测,您的内容类型应该是 multipart/form-data。
  • 试过了,我看到了一个错误。多部分:未找到边界
  • 如果您没有看到任何记录到控制台的数据,那么其他东西正在读取您的 busboy 代码之前的所有请求数据。您还可以通过在开发人员工具中检查浏览器的网络选项卡来验证是否发送了表单数据。

标签: javascript angularjs node.js http busboy


【解决方案1】:

我完全不知道,但是这个问题突然解决了。
我只是添加了一些测试代码。并删除了它们。然后就可以了。
天哪..

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-12
    相关资源
    最近更新 更多