Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.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文件调用方法_Javascript_Html_Node.js - Fatal编程技术网

从外部javascript文件调用方法

从外部javascript文件调用方法,javascript,html,node.js,Javascript,Html,Node.js,我有2个javaScript文件。 我试图从一个文件向另一个文件调用一个方法,但我得到一个错误,即我的方法不存在(“TypeError:Object”没有方法“getServer”) 有来自第一个文件的方法: function getServer(app, server) { var socket = require("socket.io"); app.get("/", function(request, response) { if(request.accepts("text/

我有2个javaScript文件。 我试图从一个文件向另一个文件调用一个方法,但我得到一个错误,即我的方法不存在(“TypeError:Object”没有方法“getServer”)

有来自第一个文件的方法:

function getServer(app, server)
{
  var socket = require("socket.io");
  app.get("/", function(request, response) {
    if(request.accepts("text/html"))
    {
      app.use(express.static(__dirname + '/'));
      response.sendfile(__dirname + "/index.html");
    }
  });

  var io = socket.listen(server);
  io.sockets.on('connection', function(client) {
  ............................................
  ............................................
  });
有来自第二个文件的方法调用:

var msgServer = require('./firstFile.js');
msgServer.getServer(app, server);
在第一个文件中,我连接到服务器并侦听端口。 我想将此服务器发送到secont文件。 我需要第二个文件中的服务器和应用程序来使用socket.io


感谢您的回复(:

您必须使用
exports
var:

exports.getServer = function(app, server)
{
  var socket = require("socket.io");
  app.get("/", function(request, response) {
  ............................................
  ............................................
  });
它允许您为每个文件设置此函数

另一种方法是:

module.exports = {
   getServer: funnction(app, server){...}
 }

第一个文件是否将getServer包含在另一个变量和/或函数中,或者它是在全局命名空间中?您是在设置
module.exports.getServer=getServer
还是为
module.exports
创建一个新对象,该对象包含
getServer
它在全局命名空间中。我没有在allAdd:
module.exports.getServer=getServer;
请参阅:了解更多信息。此外,我几乎总是建议使用
module.exports
语法。简单的
exports
只是一个引用(别名),可能会被意外覆盖,并导致不清楚的情况和问题。我认为这是最佳做法。