假設我有一個包含javascript對象的.js
文件。我希望能夠從同一目錄中的另一個.js
文件訪問該對象及其所有功能。我可以簡單地將此對象與module.exports
對象和require()
導出到其他.js
文件中嗎?如果這是可能的,你能給我一個例子嗎?使用導出對象導出對象
如果它有幫助,我正在開發與節點。
假設我有一個包含javascript對象的.js
文件。我希望能夠從同一目錄中的另一個.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) {
...
});
在一個文件中:
module.exports.myObj = some object...;
在其他:在節點中的JS文件
Obj = require('myFile.js').myObj;
一切都是局部的文件,除非你把它的出口對象。這實際上與瀏覽器中的JavaScript非常不同 - 在瀏覽器中,所有導入的文件都像一個大文件一樣起作用。
您可以考慮節點文件,就好像您正在創建一個模塊對象並將它傳遞給圍繞您的代碼的函數。
module = { 'exports' : {} };
(function(module){
//your js file
...
})(module)
當然可以。在我的例子中,我使用obj來保存我的配置信息。我把它放在config
文件夾中的index.js
文件中。這使得該指數成爲當我選擇時首選的指數。我有2個輸出在這裏爲我的節點和api的東西,另一個爲我的分貝。您可以忽略設置環境的第一位。
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';
因此,如果在節點中,我沒有返回對象定義結尾的函數,我將無法訪問(私有)函數?即使我需要模塊? –
正確,您將無法通過對象訪問它們。 'myObject._privateFunction(p1,p2)'會拋出一個錯誤'TypeError:Object#