假设我有一个包含javascript对象的.js文件,我希望能够从同一目录下的另一个.js文件中访问该对象及其所有功能,我是否可以简单地将此对象与module.exports对象一起导出,然后将require()对象导出到另一个.js文件中?如果可以,您能否给予我一个示例?如果有帮助的话我正在用节点进行开发。
.js
module.exports
require()
waxmsbnn1#
这是我创建模块的方法: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
require
var myObject = require('myModule'); myObject.function1(param1, function(err, result) { ... });
cetgtptt2#
当然可以。在我的例子中,我使用obj来保存我的配置信息。我把它放在config文件夹下一个名为index.js的文件中。这使得索引成为我import 'config'时首选的选择。这里我有两个导出,一个用于我的节点和API,另一个用于我的数据库。你可以忽略我设置环境的第一位。
config
index.js
import 'config'
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';
import config from '../config';
db
import { db } from '../config';
zbsbpyhn3#
在一个文件中:
module.exports.myObj = some object...;
在另一个:
Obj = require('myFile.js').myObj;
节点上js文件中的所有内容都是本地的,除非你把它放在export对象中,这实际上与浏览器中的JavaScript非常不同--在浏览器中,所有导入的文件都像一个大文件一样。你可以把节点文件想象成你正在创建一个模块对象,并把它传递给你代码周围的一个函数。
module = { 'exports' : {} }; (function(module){ //your js file ... })(module)
pkmbmrz74#
在我看来,最简单的方法是:写入人员. 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
2w2cym1i5#
根据es6:-
const person = function(name){ console.log(`Name of the person is ${name}`); } export default person;
np8igboo6#
您可以将对象导出为
模块.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"} })
6条答案
按热度按时间waxmsbnn1#
这是我创建模块的方法:
myModule.js
要在另一个JS文件中使用此模块,只需使用
require
并正常使用对象即可:someFile.js
cetgtptt2#
当然可以。在我的例子中,我使用obj来保存我的配置信息。我把它放在
config
文件夹下一个名为index.js
的文件中。这使得索引成为我import 'config'
时首选的选择。这里我有两个导出,一个用于我的节点和API,另一个用于我的数据库。你可以忽略我设置环境的第一位。调用
import config from '../config';
将选择默认值,如果指定,则可以获得db
导出import { db } from '../config';
zbsbpyhn3#
在一个文件中:
在另一个:
节点上js文件中的所有内容都是本地的,除非你把它放在export对象中,这实际上与浏览器中的JavaScript非常不同--在浏览器中,所有导入的文件都像一个大文件一样。
你可以把节点文件想象成你正在创建一个模块对象,并把它传递给你代码周围的一个函数。
pkmbmrz74#
在我看来,最简单的方法是:
写入人员. js:(注意它附带ctor)
并消耗它:
注意,在这个简单的解决方案中,所有的方法都是"公共的"。
参考:https://www.tutorialsteacher.com/nodejs/nodejs-module-exports
2w2cym1i5#
根据es6:-
np8igboo6#
您可以将对象导出为
模块.js
在main.js中
现在您可以使用对象