[英]Exporting Objects with the Exports Object
假设我有一个包含 javascript object 的.js
文件。我希望能够从同一目录中的另一个.js
文件访问该 object 及其所有功能。 我可以简单地将这个 object 与module.exports
object 导出并在另一个.js
文件中require()
吗? 如果可能的话,你能举个例子吗?
如果有帮助,我正在使用 node.js 进行开发。
这是我创建模块的方式:
我的模块.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
并像往常一样使用你的对象:
一些文件.js
var myObject = require('myModule');
myObject.function1(param1, function(err, result) {
...
});
当然可以。 在我的示例中,我使用 obj 来保存我的配置信息。 我把它放在config
文件夹中一个名为index.js
的文件中。 这使得索引成为我import 'config'
时的首选。 我在这里有 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';
将选择默认的。 如果我指定,我可以import { db } from '../config';
获取db
export import { db};
在一个文件中:
module.exports.myObj = some object...;
在另一个:
Obj = require('myFile.js').myObj;
节点上的 js 文件中的所有内容都是该文件的本地文件,除非您将其放在导出对象中。 这实际上与浏览器中的 JavaScript 非常不同——在浏览器中,所有导入的文件都像一个大文件一样组合在一起。
您可以考虑节点文件,就好像您正在创建一个模块对象并将其传递给围绕您的代码的函数。
module = { 'exports' : {} };
(function(module){
//your js file
...
})(module)
我认为最简单的方法:
编写 Person.js:(注意它带有 ctor)
module.exports = function (firstName, lastName) {
this.firstName = firstName;
this.lastName = lastName;
this.fullName = function () {
return this.firstName + ' ' + this.lastName;
}
}
并消费它:
var person = require('./Person.js');
var person1 = new person('James', 'Bond');
console.log(person1.fullName());
请注意,在这个简单的解决方案中,所有方法都是“公共的”。
参考: https ://www.tutorialsteacher.com/nodejs/nodejs-module-exports
根据 es6 :-
const person = function(name){
console.log(`Name of the person is ${name}`);
}
export default person;
您可以像这样导出 object
模块.js
export const events = {};
events.click = function (param1, param2...) {
//do something here
}
events.change = function (param1, param2...) {
//do something here
}
events.get = function (key, response) {
//do something here
response({status: "success"})
}
在main.js 中
import {events} from "./modules"
console.log(events)
现在您可以使用对象
events.get("my_key", (resp) => {
console.log(resp) // {status: "success"}
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.