javascript – node.js模块导出函数结构
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – node.js模块导出函数结构,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1769字,纯文字阅读大概需要3分钟。
内容图文
我想将服务作为节点中的模块公开.一旦需要,如:
var MyService = require('../services/myservice');
我希望能够创建模块的实例并使用其功能和属性,如:
var myService = new MyService();
var data = myService.getData();
我在使用导出构建模块时遇到问题.我应该如何使用导出设置myservice.js代码?
//myservice.js
module.exports = function(dependency){
return {
getData: function(){
return 'The Data';
},
name: 'My Service'
}
}
尝试使用实例化实例时出现以下错误:
var myService = new MyService();
TypeError: object is not a function
解决方法:
假设这是我的Service.js模块:
//Service.js
function Service(){}
Service.prototype.greet = function(){
return "Hello World";
};
module.exports = Service;
然后在另一个模块中,我可以简单地做:
//another.js
var Service = require('./Service');
var service = new Service();
console.log(service.greet()); //yields "Hello World"
这对我行得通.您所要做的就是在服务模块中导出Service构造函数.
– 编辑 –
在评论中解决您的问题.
无论你使用module.exports导出什么,都需要给你回复.如果导出函数,则会返回一个函数:
//greet.js
module.exports = function(){
return "Hello World";
};
然后你可以这样做:
var greet = require('./greet');
console.log(greet()); //yields 'Hello World'
如果导出对象,则会返回一个对象实例:
//greeter.js
module.exports = {
greet: function(){
return 'Hello World';
}
};
然后你可以这样做:
var greeter = require('./greeter');
console.log(greeter.greet()); //yields 'Hello World'
从逻辑上讲,如果你导出一个构造函数,那么你会得到一个构造函数,这是我原来的例子.
所以,如果你使用你的方法,你会得到一个函数,而不是一个构造函数,除非你导出的函数实际上是你的构造函数.例如:
//greeter.js
module.exports = function Greeter(){
this.greet = function(){
return 'Hello World';
};
};
然后你可以做我原来做的事情:
var Greeter = require('./Greeter');
var greeter = new Greeter();
console.log(greeter.greet());
内容总结
以上是互联网集市为您收集整理的javascript – node.js模块导出函数结构全部内容,希望文章能够帮你解决javascript – node.js模块导出函数结构所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。