4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

sails.jsAdvent Calendar 2014

Day 6

sails.js の local.js でDB接続設定する際にやりがちな間違い 「sails is not defined」とかのエラーヽ(゚ー゚*ヽ)(ノ*゚ー゚)ノわぁい | sails.js (0.10.x) で始めるアプリ開発

Last updated at Posted at 2014-11-17

※この記事はsails.js 0.10.x の情報に基づいて記載していまス。それ以前またはそれ以降 0.9 や、0.11 では該当しない可能性がありますのでご注意ください :wink:

DB接続設定の記述の仕方がまずくて、 sails is not defined とsailsアプリを起動したときにエラーメッセージが出る

まずい例

ネットで調べると、情報が混ざって何故かこういう風に書いてしまいがちになる :cry: 以下にも合っているように見えるがこれだと動かない (0.10.x) sails lift したときに "sails is not defined" と言われるのだ。

config/local.js
module.exports = {
  mysql: {
    host: 'localhost',
    user: 'YOUR_URSER_NAME',
    password: 'YOUR_PASSWORD'
  }
}
config/connections.js
module.exports.connections = {
  mysqlServer: {
    host: sails.config.mysql.host,
    user: sails.config.mysql.user,
    password: sails.config.mysql.password,
    adapter: 'sails-mysql',
    database: 'YOUR_DATABASE_NAME'
  }
}

あるべきすがた

config/local.js
module.exports = {
  connections: {
    mysql: {
      host: 'localhost',
      user: 'YOUR_URSER_NAME',
      password: 'YOUR_PASSWORD'
    }
  }
}
config/connections.js
module.exports.connections = {
  mysqlServer: {
    adapter: 'sails-mysql',
    database: 'YOUR_DATABASE_NAME'
  }
}

sails is not defined になる理由

期待していたこと

config/local.js 内に記述した値を他の config 内の設定ファイルで使う!

現実

sails の起動処理が終わったときに、変数 sails が初期化されるので、起動処理中の config 内の.js ではsailsを介してそれを読み込むことはできない。

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?