2016-10-01 22 views
1

configフォルダ(/config/schemas/userSchemas.js)内のフォルダ内のファイルにアクセスする必要があります。私のコントローラやサービスのようなどこからでもこのファイルにアクセスする方法。これを行う方法? 私はsails.config.schemas.userSchemasを試しました。しかし、それは動作しませんでした。他に何を試すことができますか?セイルjs(ノードjsフレームワーク)の設定フォルダ内にあるフォルダ内のファイルにアクセス

答えて

1

ようuserSchemas.jsを必要とすることができますそれは本当にあなたrequireの構成ファイルを直接推奨されません。セイルはあなたのためにそれらを必要とし、あなたのディレクトリ構造を完全に無視して内容をsails.configにマージします。その場合、例えば、あなたのconfig/schemas/userSchemas.jsファイルが含まれています

module.exports.userSchemas = { 
    foo: "bar" 
} 

次にあなたがsails.config.userSchemasとしてあなたのアプリでその設定にアクセスできるようになります。 最初の行は非常に慎重にです:module.exports = {...}を実行した場合、オブジェクトはsails.configではないsails.config.userSchemasにマージされます。これは、前述のように、ディレクトリ構造に関係なく構成がマージされます。

あなたが(例えばschemas)単にあなたのプロジェクトに別のフォルダに配置し、sails.configの一部になりたいと他に指定されているrequireを使用しないでんいるあなたがロードする必要のあるファイルがある場合答え。

2

あなたはotherController.js

require('./config/schemas/userSchemas.js'); 

としてアクセスすることができ、あなたは、userController.js

require('../config/schemas/userSchemas.js'); 

としてアクセスすることができ、あなたがディレクトリ構造にapp.js

myapp 
├── app.js 
├── _config 
│ ├── _schemas 
|  | 
|  ├── userSchemas.js 
|  ├── otherSchemas.js 
| 
├── _controller 
│ ├── _module1 
| | | 
| | ├── userController.js 
| | ├── otherController.js 
| ├── otherController.js 

を以下しているとしましょうアクセスできるのは

require('../../config/schemas/userSchemas.js'); 

は結論付け:..は、親ディレクトリ(バック一つのディレクトリ)に移動するために使用される.が現在のディレクトリに使用されている間、私はこれはあなたのNode.js

内のディレクトリ構造を助けることを願っています

+0

これは一般的なNodeに対する良い答えですが、直接 'require'dするつもりはないSails設定ファイルには本当に適切ではありません。 – sgress454

1

私はパスのグローバル変数を定義することをお勧めします。

次のディレクトリ構造があるとします(@ arifの答えに記載されているように)。

myapp 
├── app.js 
├── _config 
│ ├── _schemas 
|  | 
|  ├── userSchemas.js 
|  ├── otherSchemas.js 
| 
├── _controller 
│ ├── _module1 
| | | 
| | ├── userController.js 
| | ├── otherController.js 
| ├── otherController.js 

ここでは、app.jsで最初の行を次のように記述します。

global.__base = __dirname + '/'; 

/path-to-your-myapp-directory/myapp/

になりましグローバル.__基点今、あなたがuserSchema.jsにアクセスしたり、このような他のファイルができます。すべてのファイル(app.jsotherController.jsuserController.js)で

、あなたがこの

require(global.__base + 'config/schemas/userSchemas.js'); 
+0

セイルは既に 'sails.config.appPath'のアプリケーションパスと' sails.config.paths.config'のconfigディレクトリへの参照を提供しています。 – sgress454

+0

@ sgress454私は帆での経験はありません、私はnodejsに基づいて答えました –

関連する問題