.js
JavaScript オブジェクトを含むファイルが 1 つあるとします。.js
同じディレクトリ内の別のファイルから、そのオブジェクトとそのすべての機能にアクセスできるようにしたいと考えています。このオブジェクトをオブジェクトと一緒にエクスポートし、それを別のファイルにエクスポートすることはできmodule.exports
ますrequire()
か.js
? これが可能であれば、例を挙げていただけますか?
それが役立つ場合、私はノードで開発しています。
.js
JavaScript オブジェクトを含むファイルが 1 つあるとします。.js
同じディレクトリ内の別のファイルから、そのオブジェクトとそのすべての機能にアクセスできるようにしたいと考えています。このオブジェクトをオブジェクトと一緒にエクスポートし、それを別のファイルにエクスポートすることはできmodule.exports
ますrequire()
か.js
? これが可能であれば、例を挙げていただけますか?
それが役立つ場合、私はノードで開発しています。
これが私がモジュールを作成する方法です:
myModule.js
var MyObject = function() {
// This is private because it is not being return
var _privateFunction = function(param1, param2) {
...
return;
}
var function1 = function(param1, callback) {
...
callback(err, results);
}
var function2 = function(param1, param2, callback) {
...
callback(err, results);
}
return {
function1: function1
,function2: function2
}
}();
module.exports = MyObject;
また、このモジュールを別のJSファイルでrequire
使用するには、オブジェクトを通常どおりに使用して使用できます。
someFile.js
var myObject = require('myModule');
myObject.function1(param1, function(err, result) {
...
});
もちろんできます。私の例では、obj を使用して構成情報を保持しています。index.js
inconfig
フォルダというファイルに入れました。これにより、インデックスが I のときに優先的に選択されますimport 'config'
。ここには 2 つのエクスポートがあり、1 つはノードと API 用、もう 1 つはデータベース用です。環境を設定する最初の部分は無視してかまいません。
const environment = {
development: {
isProduction: false
},
production: {
isProduction: true
}
}[ process.env.NODE_ENV || 'development' ];
export default Object.assign({
host: 'localhost',
port: '3000',
remoteApi: {
token: {
'X-Token': '222222222222222222'
},
base: 'https://www.somedomain.com/api'
}
}, environment);
export const db = {
dbHost: 'localhost',
dbPort: 176178
};
呼び出すimport config from '../config';
と、デフォルトのものが選択されます。指定すると、db
エクスポートを取得できますimport { db } from '../config';
1つのファイル:
module.exports.myObj = some object...;
他の場合:
Obj = require('myFile.js').myObj;
ノード上のjsファイル内のすべては、エクスポートオブジェクトに配置しない限り、そのファイルに対してローカルです。これは実際にはブラウザのJavaScriptとは大きく異なります。ブラウザでは、インポートされるすべてのファイルが1つの大きなファイルのように一緒に機能します。
モジュールオブジェクトを作成し、それをコードを囲む関数に渡すかのように、ノードファイルについて考えることができます。
module = { 'exports' : {} };
(function(module){
//your js file
...
})(module)