在nodejs服务器

时间:2015-08-04 07:37:12

标签: ajax angularjs node.js

我正在使用从客户端到服务器的简单文件上传。以下是我的尝试。

    eReaderBook.controller('browseCtrl',['$scope',"$http",function($scope,$http){
$scope.fileName ="";
$scope.imageName ="";
    $scope.uploadFile = function(){

        var data1 = new FormData();
        data1.append('input_file_name', $('#fileName').prop('files')[0]);
        data1.append('input_image_name', $('#imageName').prop('files')[0]);
        if($scope.fileName!="" && $scope.imageName!="")
        {

            $http({
                url: '/upload',
                method: "POST",
                data: data1
            })
            .then(function(response) {
                    console.log("success")
            }, 
            function(response) { // optional
                    console.log("failed")
            }); 
        } 
    };
}])

节点.js

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(multer());
app.post('/upload',function(req,res)
{
   console.log("aaa");  
   res.send("hi")
 });

但是当我向nodejs服务器发送请求时,它会抛出错误错误:json无效     at parse(d:\ MeanTest \ node_modules \ body-parser \ lib \ types \ json.js:83:15)

我在这里做错了什么......

1 个答案:

答案 0 :(得分:1)

您的代码存在的问题是,您传递的data不是valid json,因此处理时bodyParser.json()会抛出error

您可以使用bodyParser.raw(options)作为middleware使用。 bodyParser.raw()返回将所有实体解析为缓冲区的中间件。

供参考:https://github.com/expressjs/body-parser