2017-02-28 16 views
1

Heroku CLIで実行したいスクリプトがあります。これは、Sequelizeを使用してpostgressqlデータベースにユーザーを作成する単純なスクリプトです。 これはスクリプトです:私はローカルでこのコマンドを実行する場合Heroku CLIからスクリプトを実行する

const argv = require('yargs').argv; 
const Sequelize = require('sequelize'); 
const sqlizr = require('sqlizr'); 
require('dotenv').load(); 


// Check params 
if (!argv.username) { throw new Error('username is required!'); } 
if (!argv.password) { throw new Error('password is required!'); } 
if (!argv.clientId) { throw new Error('client id is required!'); } 

// Init db connection 
const sequelize = new Sequelize(
    process.env.DB_DATABASE, 
    process.env.DB_USER, 
    process.env.DB_PASS, 
    { 
    host: process.env.DB_HOST, 
    port: 5432, 
    dialect: 'postgres', 
    logging: false 
    } 
) 

var client_id = argv.clientId; 
if(argv.clientId === -1){ 
    client_id = 0; 
} 

console.log(sequelize) 

sqlizr(sequelize, 'api/models/**/*.js'); 

// Check if user exists 
console.log('Check is user exists...'); 
sequelize.models.USERS.count({ 
    where: { 
    USERNAME: argv.username 
    } 
}) 
    .then(result => { 
    if (result > 0) { 
     console.error('user already exists!'); 
     process.exit(1); 
    } 
    }) 
    .then(() => { 
    console.log('Creating user...'); 
    sequelize.models.USERS.create({ 
     USERNAME: argv.username, 
     PASSWORD: argv.password, 
     CLNT_ID: client_id, 
     EMAIL: '[email protected]', 
     PHONE: '123456789' 
    }) 
    .then(result => { 
     console.log('User created successfully!'); 
     }) 
     .catch(error => { 
     console.error('Could not create user!', error); 
     }) 
     .finally(result => { 
     process.exit(1); 
     }); 
    }); 

すべてがうまくいけ:

node bin/createUser.js --username admin --password admin --clientId -1 

しかし、私はこのようなHerokuのCLIを介してこれを実行しよう:

heroku run bin/createUser.js --username admin --password admin --clientId -1 

私は端末でこれを入手します:

bin/createUser.js: line 4: syntax error near unexpected token `(' 
bin/createUser.js: line 4: `const yargs = require('yargs');' 

私がここで間違っていることを理解できません。誰かが私を助けて、なぜこれが起こっているのかを説明してくれることを願っています

答えて

2

nodeを指定していないので、HerokuがシェルスクリプトのようにcreateUser.jsを実行しようとしていると思われます。

あなたはHerokuの上でプログラムを実行できるようにするのNode.js buildpackをインストールする必要がありますが、試すことがあります。

heroku run node bin/createUser.js --username admin --password admin --clientId -1 
+0

はい問題だった、ありがとうございました – Roi

関連する問題