express / sails.js模块导出私有方法和其他模块的关系

时间:2014-04-16 10:49:26

标签: node.js sails.js commonjs

我理解module.export的目的

基本上,它需要一个函数对象:

// Parent.js
module.exports = {
createChild: function(req, res) { ... Child.Create(..) .. }
}

1)模块对象内部的函数如何调用其他模块? 例如,在Parent.js中,我还可以调用另一个模块Child.js。

2)如果我想向Parent.js添加私有函数(不能通过require访问),可以像访问module.export中的函数一样访问父DB:

例如:

 // Parent.js
 function validateInput(req) {
 }
 module.export = { }

1 个答案:

答案 0 :(得分:2)

  

我理解module.export的目的

     

基本上,它需要一个函数对象:

不一定。您可以为module.exports分配任何内容,例如一个对象,一个数组,一个函数,甚至只是一个值。

  

1)模块对象内部的功能如何   能够打电话给其他模块吗?例如,在Parent.js中,我也可以   调用另一个模块Child.js。

在这种情况下,您的父模块必须require您的子模块,例如:

// Parent.js
module.exports = {
  createChild: function(req, res) {
    ...
    var Child = require('./child');
    Child.Create(..) {
      ...
    }
  }
}
  

2)如果我想将私有函数添加到Parent.js(不是   可以通过require访问,可以像函数一样访问父DB   在module.export里面。

通过module.exports无法访问的内容不能(直接)从外部访问。例如,在您的情况下,您将无法直接从其他模块调用validateInput

请阅读official documentation on modules和/或CommonJS specs,这确实有帮助。