When I try to execute the below node js I am getting error when I try to fetch file from S3 bucket to apigee.
Code as follows:
var aws = require('aws-sdk'); var csv = require('csvtojson'); var http = require('http'); var apigee = require('apigee-access'); var request = require('request'); var express = require('express'); var bodyParser = require('body-parser'); var tempJson = require('./data.json'); var dataManager = require('./dataManager'); var app = express(); app.post('/tempLoad', function(req,res){ var dbset = apigee.getVariable(req, "request.queryparam.dbset"); var accessKeyId=apigee.getVariable(req, "s3_accessKeyId"); var secretAccessKey=apigee.getVariable(req, "s3_secretAccessKey"); var s3Bucket=apigee.getVariable(req, "s3_bucket"); var access_token=apigee.getVariable(req, "access_token"); var app_name=apigee.getVariable(req, "private.baasAppName"); var fileName=apigee.getVariable(req, "Filename_DailySales"); var Temp_DailySales=apigee.getVariable(req,"Temp_DailySales"); var BaaSURL=(req, "private.BaaSURL"); aws.config.update({ "accessKeyId": accessKeyId, "secretAccessKey": secretAccessKey }); var s3 = new aws.S3({ "apiVersion": '2006-03-01' }); var bucket = s3Bucket; var key = fileName+".csv"; var params = { Bucket: bucket, Key: key, }; s3.getObject(params, function(err, data){ if (err) { console.log(err); res.status(500); res.send(err); } else { var jsonOutput; var output = data.Body.toString("utf-8"); var Converter = csv.Converter; var converter = new Converter({}); converter.fromString(output,function(err,result){ jsonOutput = result; var uri = "https://"+BaaSURL+"/"+app_name+"/"+Temp_DailySales+"_"+dbset+"?access_token="+access_token; dataManager.makeRequest(jsonOutput,access_token, uri, function(error,body){ if(error){ console.log("error = "+error); } else{ console.log("body = "+body); } res.send("done"); }); }); } }); }); app.listen(process.env.PORT || 9000);
,When I try to execute I am getting error like this. what should I do for this
{ "fault": { "faultstring": "Script node executed prematurely: syntax error\nsyntax error\n at module.js:439\n at module.js:474\n at module.js:356\n at module.js:312\n at module.js:364\n at require (module.js:380)\n at /organization/environment/api/node_modules/request/node_modules/hawk/node_modules/boom/lib/index.js:5\n at module.js:456\n at module.js:474\n at module.js:356\n at module.js:312\n at module.js:364\n at require (module.js:380)\n at /organization/environment/api/node_modules/request/node_modules/hawk/lib/index.js:5\n at module.js:456\n at module.js:474\n at module.js:356\n at module.js:312\n at module.js:364\n at require (module.js:380)\n at /organization/environment/api/node_modules/request/request.js:9\n at module.js:456\n at module.js:474\n at module.js:356\n at module.js:312\n at module.js:364\n at require (module.js:380)\n at /organization/environment/api/node_modules/request/index.js:143\n at module.js:456\n at module.js:474\n at module.js:356\n at module.js:312\n at module.js:364\n at require (module.js:380)\n at /organization/environment/api/index.js:5\n at module.js:456\n at module.js:474\n at module.js:356\n at module.js:312\n at module.js:497\n at startup (trireme.js:142)\n at trireme.js:923\n", "detail": { "errorcode": "scripts.node.runtime.ScriptExitedError" } } }
Hi @Reshma ,
So the error seems to be thrown from a sub-dependency of request. I don't actually see that you're even using `request` at all. Is it a peer dependency per chance? Or is it possible that you don't even need it?
I did not get what you told.
In your script here you have a requirement for request, but I don't actually see that you're using the request module at all.
As @Jeremy Whitlock noted there's a transitive dependency on boom from request that may be the source of your issue ...
I *do* see that you're using a local include called `dataManager` and based on a call further down that may be where you're using the request module to make an http-call... I'd suggest swapping out the request module with `node-fetch` or simply requiring an older version of the request module.
This is the cause: https://github.com/hapijs/boom/blob/master/package.json#L12 It looks like boom, a transitive dependency, is requiring a newer version of node to use newer JS syntax.
package.json file
{ "name": "csvreader", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC", "engines":{ "node": ">=8.9.0" }, "dependencies": { "apigee-access": "^1.3.0", "aws-sdk": "^2.9.0", "csvtojson": "^1.1.3", "http": "0.0.0", "request": "^2.65.0", "express": "^4.13.3", "body-parser": "^1.14.1", "async": "^2.3.0" } }
User | Count |
---|---|
2 | |
2 | |
1 | |
1 | |
1 |