23

.jsJavaScript オブジェクトを含むファイルが 1 つあるとします。.js同じディレクトリ内の別のファイルから、そのオブジェクトとそのすべての機能にアクセスできるようにしたいと考えています。このオブジェクトをオブジェクトと一緒にエクスポートし、それを別のファイルにエクスポートすることはできmodule.exportsますrequire().js? これが可能であれば、例を挙げていただけますか?

それが役立つ場合、私はノードで開発しています。

4

4 に答える 4

30

これが私がモジュールを作成する方法です:

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) { 
    ...
});
于 2012-09-18T05:07:55.270 に答える
10

もちろんできます。私の例では、obj を使用して構成情報を保持しています。index.jsinconfigフォルダというファイルに入れました。これにより、インデックスが 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';

于 2016-05-24T10:44:45.050 に答える
5

1つのファイル:

module.exports.myObj = some object...;

他の場合:

Obj = require('myFile.js').myObj;

ノード上のjsファイル内のすべては、エクスポートオブジェクトに配置しない限り、そのファイルに対してローカルです。これは実際にはブラウザのJavaScriptとは大きく異なります。ブラウザでは、インポートされるすべてのファイルが1つの大きなファイルのように一緒に機能します。

モジュールオブジェクトを作成し、それをコードを囲む関数に渡すかのように、ノードファイルについて考えることができます。

module = { 'exports' : {} };
(function(module){
    //your js file
    ...
})(module)
于 2012-09-18T02:52:21.230 に答える