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

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

ただいまの
回答率

88.76%

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

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,398

Hiroooo

score 56

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/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で質問しよう!

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

関連した質問

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