处理nodejs中的表单数据

时间:2015-01-05 06:00:21

标签: javascript node.js node.js-connect node.js-domains

我正在将客户端javascript的csv文件作为Post请求上传到我的节点服务器。我也能够在nodejs服务器上处理请求。请帮助我获取文件并在服务器端解析文件。该文件将是一个csv文件,我需要解析该文件并读取该文件的内容。

我附上了源代码片段,用于在客户端和服务器端上传文件以供参考。

myAngularApp.service('fileUpload', ['$http', function ($http) {
  this.uploadFileToUrl = function(file, uploadUrl){
    var fd = new FormData();
    fd.append('file', file);
    $http.post(uploadUrl, fd, {
        transformRequest: angular.identity,
        headers: {'Content-Type': undefined}
    })
        .success(function(){
           // handling on success data
        })
        .error(function(){
           // handling on error data
        });
  }

在NodeJs服务器上:

router.post('/filter-reports', function(req, res) {
  console.log('Came inside the Node js router.. Now.. its all up to me to format the data....');
  console.log(req);
});

1 个答案:

答案 0 :(得分:-1)

我认为您没有使用multer来处理multipart / formdata请求。

提及

var multer  =   require('multer');
var storage =   multer.diskStorage({
  destination: function (req, file, callback) {
    callback(null, './public');
  },
  filename: function (req, file, callback) {
    callback(null, file.fieldname + '-' + Date.now());
  }
});

在上面的代码中。

/public是保存文件的目录;您可以更改它,文件名将更改为带有时间戳的原始文件名。它们是可选字段。

然后,在req.filereq.files您将获得您的文件信息或访问文件req.files.path将被使用,或者如果不想保存则尝试使用busboy文件,并希望在缓冲区中进行操作。