Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何使用nodejs和hapi@8.8.1_Node.js_Mongodb_Hapijs_Import Csv - Fatal编程技术网

Node.js 如何使用nodejs和hapi@8.8.1

Node.js 如何使用nodejs和hapi@8.8.1,node.js,mongodb,hapijs,import-csv,Node.js,Mongodb,Hapijs,Import Csv,我开始使用一个现有的项目,该项目是用Hapi的旧版本构建的(hapi@8.8.1)服务器上的节点版本也较旧。我得到了一个上传CSV文件的任务,其中包括用户的电子邮件地址,我需要借助CSV文件中提供的电子邮件处理用户数据。 任务列表如下:- 任务1。将CSV上传并保存到服务器上的目录中 “根目录/上传的\u csv” 任务2。读取并处理CSV数据以在数据库中搜索用户 借助CSV第2列中提到的电子邮件 任务3。在AWS s3服务器上保存导入的CSV文件 因为我正在处理旧的节点和hapi的版本,在

我开始使用一个现有的项目,该项目是用Hapi的旧版本构建的(hapi@8.8.1)服务器上的节点版本也较旧。我得到了一个上传CSV文件的任务,其中包括用户的电子邮件地址,我需要借助CSV文件中提供的电子邮件处理用户数据。
任务列表如下:-

  • 任务1。将CSV上传并保存到服务器上的目录中 “根目录/上传的\u csv”
  • 任务2。读取并处理CSV数据以在数据库中搜索用户 借助CSV第2列中提到的电子邮件
  • 任务3。在AWS s3服务器上保存导入的CSV文件

因为我正在处理旧的节点和hapi的版本,在那个阶段我甚至不能更新所有的版本和依赖项

第1步。接收CSV作为API参数,如下所示

      payload: {
          maxBytes: 20715200,
          output: 'stream',
          parse: true,
          allow: 'multipart/form-data'
      },
第二步。验证导入的CSV文件,如下所示:

validate: {
importedCsv: Joi.any()
                    .meta({swaggerType: 'file'})
                    .required()
                    .allow('')
                    .description('CSV file')

          },
第三步。在“root/XXX”目录下的服务器上上载和保存CSV

第四步。阅读和处理CSV数据,借助第2列CSV中提到的电子邮件在数据库中搜索用户

var obj = csv();
obj.from.path(csvFilePath).to.array(function (data) {            
async.forEach(data, function (item, callback){
    /** Data processing and query part **/
    console.log(item[1]); /* will print email from the second cloumn in the CSV */
}, function(err) {    
      cb(null);
   });
});
第五步。在AWS s3服务器上保存导入的CSV文件

fs.readFile(csvFilePath, function (error, fileBuffer) {
            var accessKeyId = XXXXXX;
            var secretAccessKeyId = XXXXXX;
            AWS.config.update({accessKeyId: accessKeyId, secretAccessKey: secretAccessKeyId});
            var s3bucket = new AWS.S3();
            var params = {
                Bucket: XXXXXXX,
                Key: 'XXX' + '/' + csvFileName,
                Body: fileBuffer,
                ACL: 'public-read',
                ContentType: payload.importedCsv.hapi.headers['content-type']
            };

            s3bucket.putObject(params, function (err, data) {
                if (err) {
                  // cb(ERROR);
                }else{
                  // cb(null);
                }
            });
});
fs.readFile(csvFilePath, function (error, fileBuffer) {
            var accessKeyId = XXXXXX;
            var secretAccessKeyId = XXXXXX;
            AWS.config.update({accessKeyId: accessKeyId, secretAccessKey: secretAccessKeyId});
            var s3bucket = new AWS.S3();
            var params = {
                Bucket: XXXXXXX,
                Key: 'XXX' + '/' + csvFileName,
                Body: fileBuffer,
                ACL: 'public-read',
                ContentType: payload.importedCsv.hapi.headers['content-type']
            };

            s3bucket.putObject(params, function (err, data) {
                if (err) {
                  // cb(ERROR);
                }else{
                  // cb(null);
                }
            });
});