这个REST API代码有什么问题?

时间:2015-07-03 04:47:37

标签: angularjs node.js image express upload

我使用此代码获得的错误是

  

无法发布/ img / upload /'

代码:

 app.post('/img/upload/',[multer({ dest: __dirname+'/www/images/new/',
            rename: function (fieldname, filename, req, res) {
                    return filename + '_ORIGINAL';
            },
            onFileUploadStart: function (file, req, res) {
                     console.log(file.fieldname + ' is starting ...')
            },
            onFileUploadData: function (file, data, req, res) {
                     console.log(data.length + ' of ' + file.fieldname + ' arrived')
            },
            onFileUploadComplete: function (file, req, res) {
                     console.log(file.fieldname + ' uploaded to  ' + file.path)
            },
            onError: function (error, next) {
                     console.log(error)
                     next(error)
            }
    })]);

此API的控制器请求是:

    var data = new FormData;
    data.append("file", files[0]);

     $http({
            url: 'http://52.25.181.109/img/upload/',
            method: "POST",
            data : data,
            headers: {'Content-Type': 'application/x-www-form-urlencoded'}
        }).success(function (data, status, headers, config) {
            $scope.hide_u();
            console.log(data);
        }).error(function (data, status, headers, config) {
            $scope.hide_u();
            console.log(data);
        });

代码执行时出错。我该如何纠正?

1 个答案:

答案 0 :(得分:0)

尝试更改标题:headers: {'Content-Type': 'multipart/form-data'} Multer仅满足多部分要求。该路由对“application / x-www-form-urlencoded”无效。形成他们的网站:

  

用于处理multipart/form-data的Node.js中间件。

更新: 我设置了一个服务器。以下应该工作,更改服务器处理程序:

app.use(multer({ dest: __dirname+'/www/images/new/'}));
app.post("/img/upload/", function() {console.log("request rec.")});

我的测试表格是:"<form enctype=\"multipart/form-data\">"

建议:尝试删除标题。