Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在NodeJS中调用导出的函数?哪一个可以嵌套?_Javascript_Node.js_Express_Mocha.js - Fatal编程技术网

Javascript 如何在NodeJS中调用导出的函数?哪一个可以嵌套?

Javascript 如何在NodeJS中调用导出的函数?哪一个可以嵌套?,javascript,node.js,express,mocha.js,Javascript,Node.js,Express,Mocha.js,这是我正在导出的app.js中的函数: var app = { start: function() { //sample function exports.msgReceived = function() { return "Tomorrow 8pm near city hall"; } } } module.exports = app; 我有一个名为messages.js的文件,我想在其中调用start函数和msgReceived函数: let s

这是我正在导出的
app.js
中的函数:

var app = {
  start: function() {
    //sample function
    exports.msgReceived = function() {
      return "Tomorrow 8pm near city hall";
    }
  }
}
module.exports = app;
我有一个名为
messages.js
的文件,我想在其中调用
start
函数和
msgReceived
函数:

let subscriber = require('app');

it('server gets connected', function(done) {
  subscriber.start(); // working
  subscriber.msgReceived(); // not working
  done();
});
我怎么能做到


因为使用
var
关键字,我只能访问
start
功能。我的代码编辑器IntelliSense没有指向
msgReceived
函数。

您可以这样做,在运行
start()
后在应用程序对象上设置新函数

如果你想让intellisense工作,你可能必须包括

var app = {
  start : ...,
  msgReceived: null // or undefined... or anything.
}
也许这会有帮助:

var app = {
  start: function() {
    //sample function
    let msgReceived = function() {
      return "Tomorrow 8pm near city hall";
    };
    return {msgReceived: msgReceived};
  }
}
module.exports = app;

var app = {
  start: function() {
    //sample function
    let msgReceived = function() {
      return "Tomorrow 8pm near city hall";
    };
    return {msgReceived: msgReceived};
  }
}
module.exports = app;
let subscriber = require('app');

it('server gets connected', function(done) {
  let start = subscriber.start(); // working
  let msg = start.msgReceived(); // should work
  done();
});