在我的nodejs代码中使用cs-import-document命令在json中转换文件时出错

时间:2017-04-28 10:19:28

标签: node.js module amazon-cloudsearch

在我的nodejs代码中,我使用名为node-cmd的模块来使用amazon cloudsearch工具包中的命令cs-import-documents。

在我的本地计算机上,它正常工作,我能够转换我的文件,然后在cloudsearch上上传json文件。我在Windows 10上使用webstrom。 但我想让它在我的ec2实例中工作,所以我在aws上创建了一个带有弹性beanstalk的nodejs实例ec2,我在ssh中访问它以尝试执行我的代码。

是不是在ec2或命令上工作的模块? 也许有另一种更好的方法来做到这一点? 当我在命令行中使用它时,cs-import-command正在工作。

这是我的代码:

function commandToJson(dest, fileName){
var res = fileName.replace("&", "^&");
var resJsonName = utils.basename(res);
var commande = 'cs-import-documents --source "' + dest + '\\' + res + '" --output "' + dest + '\\' + resJsonName + '"';
console.log(commande);
cmd.get(
    commande,
    function(data, err, stderr){
        if (!err) {
            console.log('\n --------------retour console---------------- : \n\n',data);
            var jsonName = utils.basename(fileName);
            uploadToCloudsearch(relTempPath + jsonName + '1.json');
        } else {
            console.log('error', err)
        }
    }
);

}

这是我得到的错误:

错误{错误:命令失败:/./cloudsearch/cloud-search-tools-v2-2.0.1.0-2014.10.27/bin/cs-import-documents --source" TEMP / Questions and Answers在CSDR" - 输出" TEMP /有关CSDR的问题和解答"

at ChildProcess.exithandler (child_process.js:206:12)
at emitTwo (events.js:106:13)
at ChildProcess.emit (events.js:191:7)
at maybeClose (internal/child_process.js:877:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:226:5)

杀死:假,   代码:1,   signal:null,   cmd:' /./ cloudsearch / cloud-search-tools-v2-2.0.1.0-2014.10.27 / bin / cs-import-documents --source" TEMP / CSDR上的问题与解答&#34 ; - 输出" TEMP /有关CSDR的问题和解答"' }

1 个答案:

答案 0 :(得分:0)

我设法解决它。 我需要为root profil设置变量,然后在root中运行我的代码。

要对其进行硬编码,因此每次我建议将其放入.bashrc或.bash_profile中,以便为每个相应的用户(Root,ec2-user等)输入导出。这些文件将位于/ home / ec2-user /或/ root /中。只需输入“env”即可看到您当前设置和激活的内容。根据您的设置,您可以将其放入其中任何一个中。 像:

export CS_HOME=/usr/local/aws/bin/cloud-search-tools-v2-2.0.1.0-2014.10.27
export PATH=$PATH:$CS_HOME/bin
export AWS_CREDENTIAL_FILE=/home/ec2-user/.aws/creds
export CS_ENDPOINT=cloudsearch.us-east-1.amazonaws.com

What's the difference between .bashrc, .bash_profile, and .environment?