假设我有一个包含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#