質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.49%

  • MySQL

    5863questions

    MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

  • AWS(Amazon Web Services)

    2004questions

    Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

  • Node.js

    1866questions

    Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

  • MariaDB

    295questions

    MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

EC2上でのシンタックスエラーについて

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 711

Hiroooo

score 48

EC2にSSH接続して、Node.jsを起動するために「sudo npm start」のコマンドを走らせると下記のようなエラーが出てしまい原因がわからず困っています。
間違えっている点や解決策などわかる方がいましたら教えていただきたいです。
よろしくお願いいたします。

表示されるエラーとエラー発生箇所のコード、package.jsonを以下に添付しておきます。

Package.json
1
2

gulpfile.js
gulpfile

npm installによるエラー
npm install

sudo npm install・npm start
エラー

MySQLのユーザー一覧
ユーザーリスト

sudo node ./bin/wwwのエラー
sudo node ./bin/wwwのエラー

イメージ説明
sudo npm install -g n実行時の画面

再実行

MySQL接続箇所
MySQL接続箇所

README
README

DB接続関連コード
DB接続関連コード

npm start実行結果
最新画像

sudo node ./bin/wwwの実行結果
sudo node ./bin/www

./bin/www

#!/usr/bin/env node

/**
 * Module dependencies.
 */

var app = require('../app');
var debug = require('debug')('Mery:server');
var http = require('http');
var https = require('https');
var fs = require('fs');

// Require the models

var models = require('../models');

// Sync the sequelize
/*models.sequelize.sync().then(() => {
    console.log('connected to the database');
});*/
models.sequelize.sync().then(function() {
    console.log('connected to the database');
});

/**
 * Get port from environment and store in Express.
 */

var port = normalizePort(process.env.PORT || '3000');
app.set('port', port);

/**
 * Create HTTP server.
 */

var server = http.createServer(app);

/**
 * Listen on provided port, on all network interfaces.
 */

server.listen(port);
server.on('error', onError);
server.on('listening', onListening);

/**
 * Normalize a port into a number, string, or false.
 */

function normalizePort(val) {
    var port = parseInt(val, 10);

    if (isNaN(port)) {
        // named pipe
        return val;
    }

    if (port >= 0) {
        // port number
        return port;
    }

    return false;
}

/**
 * Event listener for HTTP server "error" event.
 */

function onError(error) {
    if (error.syscall !== 'listen') {
        throw error;
    }

    var bind = typeof port === 'string'
        ? 'Pipe ' + port
        : 'Port ' + port;

    // handle specific listen errors with friendly messages
    switch (error.code) {
        case 'EACCES':
            console.error(bind + ' requires elevated privileges');
            process.exit(1);
            break;
        case 'EADDRINUSE':
            console.error(bind + ' is already in use');
            process.exit(1);
            break;
        default:
            throw error;
    }
}

/**
 * Event listener for HTTP server "listening" event.
 */

function onListening() {
    var addr = server.address();
    var bind = typeof addr === 'string'
        ? 'pipe ' + addr
        : 'port ' + addr.port;
    debug('Listening on ' + bind);
}

// Cron
var CronJob = require('cron').CronJob;
var job = new CronJob({
    cronTime: ' 00 03 * * 1-7',
    onTick: function () {
        /*
         * Runs every weekday (Monday through Sunday)
         * at 03:00:00 AM.
         */
        console.log(`${new Date()}: Starting to Update Views`)
        models.Toview.findAll({
            where: {
                view: {
                    $eq: 1
                }
            }
        }).then((result) => {
            var sequelize = require('sequelize');
            console.log(typeof result);
            result.forEach((blog) => {
                models.Blog.update({
                    views: sequelize.literal('views +1'),
                    previous_views: sequelize.literal('previous_views +1')
                }, {
                    where: {
                        id: blog.a_id
                    }
                }).then(() => {
                    models.Toview.destroy({
                        where: {
                            id: blog.id
                        }
                    });
                });
            });
        });
    },
    start: true
});
job.start();

bower.json

{
  "name": "Mery",
  "description": "",
  "main": "",
  "authors": [
    "John Eric Torres Orolfo"
  ],
  "license": "MIT",
  "homepage": "",
  "private": true,
  "ignore": [
    "**/.*",
    "node_modules",
    "bower_components",
    "test",
    "tests"
  ],
  "dependencies": {
    "riot": "^2.6.4"
  },
  "devDependencies": {
    "axios": "^0.15.2"
  }
}

sudo node ./bin/wwwのエラー
エラー

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • moonphase

    2017/03/02 09:38

    アプリからDBに繋がる以前の問題なので、題名の変更をされたほうがいいのではないでしょうか。

    キャンセル

  • Hiroooo

    2017/03/02 10:19

    ご指摘ありがとうございます。変更しました。

    キャンセル

回答 2

checkベストアンサー

0

node.jsのバージョンが低くて、es2015のコードが書けないとか。
ためしにfunciton() {}に変更してみたらどうなります?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/03/01 23:23

    これはシンタックスエラーだから、そういうことなんですか。
    私はエンジニアではなく訳あってデプロイは自分でやらなくてはいけない状況になっていまして。
    ちなみにバージョンですが、調べてたとところv7.6.0と出てきました。そして、Nodeの最新バージョンを調べたらv6.10.0となっていたのですが、おそらくここがいけないのでしょうか?

    ちなみに、下記サイトを見て、その通りに実行しました。
    https://sea-encode.top/2016/09/12/aws-ec2-node-js%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%97%E3%81%A6hello-world%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%95%E3%81%9B%E3%82%8B/

    また、エンジニアでないため自信がないのですが、ご指摘いただいた点の書き換え後は以下のような形であっていますでしょうか?

    models.sequelize.sync().then() =function() {
    console.log('connected to the database');
    };

    キャンセル

  • 2017/03/01 23:29

    LTSの最新バージョンは6.10ですが、さらに先の最新バージョンが7.6ですのでnode.jsのバージョンはもんだありませんね。
    書き換えですが
    models.sequelize.sync().then(function() {
    console.log('connected to the database');
    });
    としてみてください。

    キャンセル

  • 2017/03/02 00:01

    ご丁寧にありがとうございます。
    今になってインサートモードで修正する方法があったと思ったのですが、再度デプロイしていたので時間がかかってしまい申し訳ありません。

    修正したところ、最初にお伝えしていたエラーは解消されました。

    そして上記質問内容に追加したエラーが発生しました。
    これらのエラーは何によるものなのかわかりますでしょうか?

    キャンセル

  • 2017/03/02 00:11

    やはりes2015が使えない状況のようですね。このほかにも出てくるでしょうから、とりあえずコード修正は置いといて、すみませんが、コードがあるフォルダまたはその親のフォルダにpackage.jsonがあると思いますので、その内容を記載していただけませんか?

    キャンセル

  • 2017/03/02 00:23

    2つになってしまいましたが追加しました。
    すごい素人な質問で申し訳ないのですが、これらのdependenciesの中にあるものって全てEC2上で何かのコマンドでインストールするものでしょうか?

    キャンセル

  • 2017/03/02 00:26

    node_modulesというフォルダがあり、その中にそれらしきフォルダはたくさん入っているのですが。。

    キャンセル

  • 2017/03/02 10:34

    node --harmony ./bin/www
    として--harmony オプション付けて起動してみてください。

    キャンセル

  • 2017/03/02 10:40

    「node --harmony ./bin/www」としても同じエラーが表示されてしまいました。

    キャンセル

  • 2017/03/02 10:44

    .babelrcファイルがあると思いますが、その内容はどうなっています?

    キャンセル

  • 2017/03/02 10:55

    そちらのファイルはどこにあるものなのでしょうか?
    「home/ec2-user/」にアプリコードを置いているのですが、その周辺にはそのようなファイルが見つからないのですが。

    キャンセル

  • 2017/03/02 11:08

    関係があるかわかりませんが、gulpfie.jsの中の各タスクに以下のような記述はありました。
    上記質問内容にスクリーンショットも添付しています。

    .pipe(babelify({
    presets: ['es2015']
    }))

    キャンセル

  • 2017/03/02 11:10

    すいません。そしたら、一度
    gulp
    と入力して、gulpを実行してみてください。

    キャンセル

  • 2017/03/02 11:17

    gulpを実行しようとすると、「コマンドが見つかりません」というエラーが出てしまうのですが。
    本当にいろいろと申し訳ありません。

    キャンセル

  • 2017/03/02 11:27

    そしたら、
    package.jsonのあるフォルダに行き
    npm install
    と入力して実行してください。

    キャンセル

  • 2017/03/02 11:39

    すいません。またしてもエラーが出てしまったのですが。。
    エラーのスクリーンショットを上記質問に添付させていただきました。
    本当にわからないことだらけで申し訳ないです。

    キャンセル

  • 2017/03/02 11:40

    sudo npm install
    としてみてください。

    キャンセル

  • 2017/03/02 11:54

    sudo npm installはWARNと表示されましたが実行でき、その後npm startを実行するとエラーが表示されてしまいました。
    npm start以外にも「node ./bin/www」「node --harmony ./bin/www」を試しましたが同じエラーでした。

    エラーのスクリーンショットは上記に添付してあります。

    キャンセル

  • 2017/03/02 11:56

    MySQLにroot@localhostのユーザー作成してください。

    キャンセル

  • 2017/03/02 12:08

    こちらはRDSに接続して以下のコマンドということであっていますでしょうか?
    CREATE USER root@localhost IDENTIFIED BY 'password(自分で設定)'

    キャンセル

  • 2017/03/02 12:14

    ええ、作成した後はユーザーに権限も設定してください。

    キャンセル

  • 2017/03/02 12:59

    いろいろ試していて時間がかかってしまって申し訳ありません。
    root@localhostを作成して、下記のコマンドで権限も付与したのですが、同じエラーが表示されてしまいました。
    grant all privileges on cara.* to root@localhost IDENTIFIED BY '{パスワード}';

    ちなみに現在のユーザー一覧のスクリーンショットは上記質問内容の最下部に添付しています。

    grant all privileges on *.* to root@localhost IDENTIFIED BY '{パスワード}';
    で権限を付与しようとしてみたら、
    ERROR 1045 (28000): Access denied for user 'a14enlon'@'%' (using password: YES)
    というエラーが出てしまったので、今回使用するはずのcara.*で権限を付与しました。
    これはRDSのマスターユーザーをrootとして作成する必要があるのでしょうか?

    キャンセル

  • 2017/03/02 13:07

    ちなみにこの状態でnode ./bin/wwwを実行してみたらどうなります?

    キャンセル

  • 2017/03/02 13:12

    これまでと同じように下記のエラーが表示されてしまいます。
    Unhandled rejection SequelizeBaseError: ER_ACCESS_DENIED_ERROR: Access denied for user 'root'@'localhost' (using password: YES)

    キャンセル

  • 2017/03/02 13:13

    RDSにrootでログインして、root@localhostに権限を与えてみてください。

    キャンセル

  • 2017/03/02 13:18

    mysql -h RDSのエンドポイント -P 3306 -u root -p
    でログインしようとすると、パスワードを入力したタイミングで
    ERROR 1045 (28000): Access denied for user 'root'@'10.0.0.186' (using password: YES)
    というエラーが表示されてしまうのですが。
    RDSのrootでのログインの方法が間違っていますでしょうか?
    他の方法があれば、教えていただけると助かります。

    キャンセル

  • 2017/03/02 13:21

    rdsadminでログインしてみてください。

    キャンセル

  • 2017/03/02 13:31

    rdsadminというユーザーは作成した覚えがなく、パスワードが不明なのですが、
    考えられる様々なパスワードを試してみましたが、全て以下のエラーが返されてしまいました。

    ERROR 1045 (28000): Access denied for user 'rdsadmin'@'10.0.0.186' (using password: YES)

    キャンセル

  • 2017/03/02 13:35

    http://qiita.com/dev-masaki/items/76946c76923f99b85f8e
    こちらを参考に、MySQLの権限システムを使用せずに権限設定を行ってみてください。

    キャンセル

  • 2017/03/02 15:51 編集

    遅くなってしまい申し訳ありません。
    いただいたコマンドはなぜか実行できなく、いろいろ探していたらほとんど同じ内容の記事を見つけ、そちらは実行できたので、以下のサイトを参考に実行しました。
    http://www.goofoo.jp/2011/11/1457

    ただ、この変更の後にsudo npm startを実行しても以前と同様のエラーが返ってきてしまいます。
    mysql -h RDSのエンドポイント -P 3306 -u root -p
    を実行してもパスワードを入力すると、またしても下記エラーが発生してしまいます。
    ERROR 1045 (28000): Access denied for user 'root'@'10.0.0.186' (using password: YES)

    念のため行ったときのことを記載しますが、
    mysqlを止めて–skip-grant-tablesオプション付きで起動しrootで入ったときは、私がこのアプリのために作成したcaraというデータベースは存在しなく、information_schema、innodb、mysql、performance_schemaの4つのみで、use mysqlを実行してから、以下のコマンドで権限を付与しました。
    grant all privileges on *.* to root@localhost identified by 'パスワード' with grant option;


    このような状況なのですが、何が原因か、どうすれば解決できるか、わかりますでしょうか?

    キャンセル

  • 2017/03/02 15:54

    root@10.0.0.186のユーザーを作成してみてください。

    キャンセル

  • 2017/03/02 16:53

    そちらを作成してcara.*に対する権限を与えても、npm startコマンド時のエラーは変化ありませんでした。
    また、*.*の権限を与えることはできませんでした。

    ただ、「mysql -h RDSのエンドポイント -P 3306 -u root -p」でmysqlに接続することはできるようになりました。

    また、「sudo node .bin/www」を実行すると上記質問エリア最下部のようにes2015のところでエラーが発生してしまいます。

    キャンセル

  • 2017/03/02 16:58

    すいませんが、もう一度
    node -v
    と入力してnodeのバージョンを確認してください。

    キャンセル

  • 2017/03/02 17:15

    今確認しても変わらずv7.6.0と表示されます。

    キャンセル

  • 2017/03/02 17:17

    ./bin/www
    の内容を確認してください。

    キャンセル

  • 2017/03/02 17:21

    確認とは何をすればいいのでしょうか?

    キャンセル

  • 2017/03/02 19:23

    すみません。
    sudo npm install -g n
    としてnodeのバージョン管理をインストールしてください。

    キャンセル

  • 2017/03/02 21:12

    いえ、私がわからないことが多すぎて申し訳ないです。
    「sudo npm install -g n」を実行した時の画面を質問内容最下部に添付しました。

    念のための情報ですが、こちらを入れた後にバージョンを確認してもv7.6.0と変わらず、「npm start」を実行しても以前のエラーと変化はありませんでした。

    キャンセル

  • 2017/03/02 21:14

    ちょっとキャッシュが悪さしてるっぽいので
    sudo npm cache clean
    を実行してキャッシュをクリアした後再度
    sudo npm install -g n
    を実行してみてください。

    キャンセル

  • 2017/03/02 21:22

    多少実行結果は変わったのですが、まだWARNが出ています。
    実行結果は最下部に添付してあります。

    あと、こちらのコマンド「sudo npm install -g n」見覚えがあると思い、Nodeインストール時の実行コマンドのメモを見返したらすでに実行していました。

    参考までにNodeインストール時に実行したコマンドはこのような感じです。
    sudo yum install nodejs npm --enablerepo=epel
    sudo yum install git gcc-c++ make openssl-devel
    sudo npm install -g n
    sudo n stable

    キャンセル

  • 2017/03/02 21:24

    そしたら、現在、最新バージョンは7.7.1らしいので
    sudo n 7.7.1
    としてnodeの7.7.1に切り替えてみてください

    キャンセル

  • 2017/03/02 21:53

    これまでとは違うエラーが表示されて、これよりまでも前段階でのエラーのような気もするのですが、バーsジョン変更に伴い、他にも何か変更することありましたでしょうか?

    キャンセル

  • 2017/03/02 21:54

    エラーのスクリーンショットは上記の添付しています。npm startとsudo node ./bin/wwwの両方あります。

    キャンセル

  • 2017/03/02 22:07

    sudo lsof -i:3000
    として、3000ポートを使用しているプロセスを調べてください。
    httpd 1399 apache 4u IPv4 11324 0t0 TCP *:http (LISTEN)
    といった感じの行が表示されると思うので左から2番目がプロセスIDとなります。
    kill -9 <PID> (上記の例だと kill -9 1399)
    のコマンドで3000ポートを使用しているプロセスを強制終了させてから再度実行を試してみてください。

    キャンセル

  • 2017/03/02 22:10

    あ、
    sudo kill -9 <PID>
    でsudo付きでないとだめかも

    キャンセル

  • 2017/03/02 22:27

    ご丁寧にありがとうございます。kill -9はsudoなしでも実行できました。
    ただ、そのコマンドのあとにnpm startを実行しても以下のようにこれまでと同じエラーが発生してしまいました。

    Unhandled rejection SequelizeBaseError: ER_ACCESS_DENIED_ERROR: Access denied for user 'root'@'localhost' (using password: YES)

    これはRDSに通信している時のエラーという認識であっていますでしょうか?

    キャンセル

  • 2017/03/02 22:31

    ソースコードでmysqlに接続しているところを調べて、パスワードがあっているか確認してください。

    キャンセル

  • 2017/03/02 22:46

    ソースコードのどの部分がMySQLに接続している部分か自信がないのですが、上記添付画像の部分であっていますでしょうか?

    キャンセル

  • 2017/03/02 22:49

    別ファイルで管理してるのですね。これでいいかと思います。これでroot@localhostのパスワードと一致していなかったら書き換えてみてください。

    キャンセル

  • 2017/03/02 23:04

    もともとrootに揃えても試していて、再度パスワードをrootに変更しましたが、変わりませんでした。
    root@localhostとroot@10.0.0.186の両方をrootに揃えました。

    キャンセル

  • 2017/03/02 23:20

    meryというデータベースあります?

    キャンセル

  • 2017/03/02 23:49

    meryではなくcaraというデータベースを作りました。
    質問内容最下部に添付したファイルがあって、そこから本番はcaraというデータベースを作るのかと思っていたのですが、meryで作るべきでしょうか?

    添付ファイル英語ですいません。
    今東南アジアにいて、現地の人にコードを書いてもらったのですが、お金を払ったら連絡が返ってこなくなり、今自分で試行錯誤している状況に至っているためです。

    あと、もともとこのコードは一旦Elastic Beanstalk上にデプロイされていたものを使っています。
    その現地の人はAWSを使ったことがなくいろいろとあまりよくない設定になっていたので、今やり直しているところです。

    キャンセル

  • 2017/03/02 23:53

    そしたら、ためしに接続設定ファイルのdatabeseの項目のところをcaraに変えてみてください。

    キャンセル

  • 2017/03/03 00:19

    いろいろ試してみたのですが変化はありませんでした。
    DB接続に関係ありそうなコードを見つけたのですが、これとこれまでの添付ファイルからどのように設定すれば良いなどわかったりしますでしょうか?

    今回見つけたDB接続に関係ありそうなファイルは質問内容最下部に添付しています。

    キャンセル

  • 2017/03/03 00:31

    環境変数使用しているのか。
    $ export RDS_HOSTNAME=localhost
    $ export RDS_USERNAME=root
    $ export RDS_PASSWORD=rootのパスワード
    $ export RDS_PORT=3306
    とコマンドで環境変数を設定してみてください。

    キャンセル

  • 2017/03/03 00:48

    いただいたものに加えて「export RDS_DB_NAME=cara」も追加したのですが、npm実行後のエラーに変化はありませんでした。。

    RDS立ち上げ時のマスターユーザー名とそのパスワードをrootにしないといけないなどあるのでしょうか?

    キャンセル

  • 2017/03/03 00:50

    ちなみにこのいただいたコマンドはアプリのコードのあるディレクトリ(home/ec2-user/cara/)で実行するという認識であっていましたでしょうか?(caraがアプリケーションのディレクトリです)

    キャンセル

  • 2017/03/03 07:44

    ええ、具体的にはpackage.jsonがあるフォルダです。./bin/wwwで起動しているところを見るとgeneratorで作成されたものと推測されます。pakage.jsonがあるフォルダには、node_modules,bin,public,rutes,viewsフォルダといったものがあると思います。

    キャンセル

  • 2017/03/03 07:45

    ちなみに、AWSのRDSを使用してDB(cara)を作成したのでしょうか?

    キャンセル

  • 2017/03/03 11:58

    はい、それらがあるファイルで実行しました。
    また、RDSを使用してDB(cara)を作成しています。

    キャンセル

  • 2017/03/03 12:03

    そしたら
    $ export RDS_HOSTNAME=RDSのホスト名
    としてください。

    キャンセル

  • 2017/03/03 13:03

    export RDS_HOSTNAME=RDSのホスト名を指定して、
    そのあと、「export NODE_ENV = 'EB-PRODUCTION'」を実行して、
    USERNAMEとPASSWORDをRDS立ち上げ時に作成したマスターのものと揃えたら無事にDBと接続できました。

    上記にnpm start(長すぎるので途中までのものです)とsudo node ./bin/wwwの実行結果を添付していますが、sudo node ./bin/wwwでは未だにシンタックスエラーが発生しますが、これはnpm startを使用すればよいということで放っておいていいのでしょうか?

    あといくつかお聞きしたことがあるので、下記に箇条書きにさせていただきます。
    ・今は自分でターミナルで立ち上げていないとサイトが見れないのですが、本番ではどのように対応するのでしょうか?
    ・package.jsonとbower.jsonの中にname:Meryとあるのですが、こちらは変更しても問題ないのでしょうか?
    ・bowerに関するコマンドは実行していないのですが、「npm install bower -g」など実行する必要はありますか?


    すごい丁寧に長い間お世話になり、さらにいろいろと質問してしまってすいません。

    キャンセル

  • 2017/03/03 13:04

    bowerに関するもので必要なコマンドがあったら教えていただけると嬉しいです。

    キャンセル

  • 2017/03/03 13:07

    いまのところ、bowerが必要となる場面が出てきません。
    あと、./bin/wwwの内容を掲載してください。

    キャンセル

  • 2017/03/03 13:36

    ./bin/wwwとbower.jsonの中身を上記に追加しました。
    riot.jsやaxiosを使用する時にbowerに関するコマンドが必要になるのでしょうか?

    キャンセル

  • 2017/03/03 13:50

    ./bin/wwwをes5に書き換えたものを回答に書きました。これをコピペしてください。(コードブロック右上にコピーボタンがあるので楽です)
    あと、bowerはタスクランナーです。WebPackでほぼ同等の処理が行えますので、WebPackを使用するのであればbowerは不要だと思いますが。bowerやWebPackがどういうものかはご自身で学習してください。

    キャンセル

  • 2017/03/03 15:10

    本当にご丁寧にありがとうございます。
    ./bin/wwwを書き換えてsudo node ./bin/wwwを実行してみたのですが、他のファイルでエラーが発生してしまいました。(上記にスクリーンショットあり)
    これはnpm startを実行しないとアロー関数を使えなく、npm startで起動するしかないということでしょうか?
    npm startでの起動でも問題がなければこれでいいのですが。。

    また、環境変数はssh接続をきるとリセットされてしまうようなのですが、これも仕方がないことなのでしょうか?
    もし環境変数がリセットされないようにする方法があれば教えていただきたいです。

    キャンセル

  • 2017/03/03 15:20

    このプロジェクトは個人のものでしょうか、それとも会社や他の人のものでしょうか

    キャンセル

  • 2017/03/03 15:25

    現状個人のもので、後々法人化を考えている状況です。

    キャンセル

  • 2017/03/03 15:42 編集

    ーーー

    キャンセル

  • 2017/03/03 15:45

    わかりました。

    キャンセル

  • 2017/03/03 15:45 編集

    ーーー

    キャンセル

  • 2017/03/03 15:46

    しました。

    キャンセル

  • 2017/03/03 15:46

    そしたらなんか送ってください。

    キャンセル

0

es5に書き換えた./bin/www

var app = require('../app');
var debug = require('debug')('Mery:server');
var http = require('http');
var https = require('https');
var fs = require('fs');

// Require the models

var models = require('../models');

// Sync the sequelize
/*models.sequelize.sync().then(() => {
    console.log('connected to the database');
});*/
models.sequelize.sync().then(function() {
    console.log('connected to the database');
});

/**
 * Get port from environment and store in Express.
 */

var port = normalizePort(process.env.PORT || '3000');
app.set('port', port);

/**
 * Create HTTP server.
 */

var server = http.createServer(app);

/**
 * Listen on provided port, on all network interfaces.
 */

server.listen(port);
server.on('error', onError);
server.on('listening', onListening);

/**
 * Normalize a port into a number, string, or false.
 */

function normalizePort(val) {
    var port = parseInt(val, 10);

    if (isNaN(port)) {
        // named pipe
        return val;
    }

    if (port >= 0) {
        // port number
        return port;
    }

    return false;
}

/**
 * Event listener for HTTP server "error" event.
 */

function onError(error) {
    if (error.syscall !== 'listen') {
        throw error;
    }

    var bind = typeof port === 'string'
        ? 'Pipe ' + port
        : 'Port ' + port;

    // handle specific listen errors with friendly messages
    switch (error.code) {
        case 'EACCES':
            console.error(bind + ' requires elevated privileges');
            process.exit(1);
            break;
        case 'EADDRINUSE':
            console.error(bind + ' is already in use');
            process.exit(1);
            break;
        default:
            throw error;
    }
}

/**
 * Event listener for HTTP server "listening" event.
 */

function onListening() {
    var addr = server.address();
    var bind = typeof addr === 'string'
        ? 'pipe ' + addr
        : 'port ' + addr.port;
    debug('Listening on ' + bind);
}

// Cron
var CronJob = require('cron').CronJob;
var job = new CronJob({
    cronTime: ' 00 03 * * 1-7',
    onTick: function () {
        /*
         * Runs every weekday (Monday through Sunday)
         * at 03:00:00 AM.
         */
        var dt = new Date();
        var strDt = [dt.getFullYear(), dt.getMonth() + 1, dt.getDate()].join('-') + ' ' + [('0' + dt.getHours()).slice(-2), ('0' + dt.getMinutes()).slice(-2), ('0' + dt.getSeconds()).slice(-2)].join(':');
        console.log(strDt + ': Starting to Update Views');
        models.Toview.findAll({
            where: {
                view: {
                    $eq: 1
                }
            }
        }).then(function(result) {
            var sequelize = require('sequelize');
            console.log(typeof result);
            result.forEach(function(blog) {
                models.Blog.update({
                    views: sequelize.literal('views +1'),
                    previous_views: sequelize.literal('previous_views +1')
                }, {
                    where: {
                        id: blog.a_id
                    }
                }).then(function() {
                    models.Toview.destroy({
                        where: {
                            id: blog.id
                        }
                    });
                });
            });
        });
    },
    start: true
});
job.start();

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.49%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • MySQL

    5863questions

    MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

  • AWS(Amazon Web Services)

    2004questions

    Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

  • Node.js

    1866questions

    Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

  • MariaDB

    295questions

    MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。