简体   繁体   English

如何将此节点代码分解为不同的文件

[英]How to break this Node code into different files

I want to put code such as 我想把诸如

app.use("/localAssets", express.static(__dirname + '/localAssets'));
app.use("/scripts", express.static(__dirname + '/scripts'));

in a different file, right now it is in the main server file but I do not like that. 在另一个文件中,现在它在主服务器文件中,但是我不喜欢这样。 I also don't like that all the scoket event handling is also in the main server file. 我也不喜欢所有的scoket事件处理也都在主服务器文件中。

ie

function onSocketConnection(client) {
  //player connected
  // Listen for client disconnected
  client.on("disconnect", onClientDisconnect);
  client.on('sendMessage', function (data) {
    this.broadcast.emit('message', data);
    this.emit('message', { text: data.text});   
  });   
  // Listen for new player message
  client.on("new player", onNewPlayer);
  // Listen for move player message
  client.on("move player", onMovePlayer);
  client.on("update health", onUpdateHealth);
  client.on("attack hits", onHitByAttack);
  client.on("meteor cast", onMeteorCast)
};

 function onClientDisconnect() {
     ...
 }

Please advise! 请指教!

Here is the full file I want to sort out: 这是我要整理的完整文件:

https://gist.github.com/hassanshaikley/337e5b7b7a8206a54418 https://gist.github.com/hassanshaikley/337e5b7b7a8206a54418

Just put anything you want into different files inside of a function like this: 只需将您想要的任何内容放入类似函数的不同文件中:

module.exports = function() {
  // your code here
};

Then require and call that function, passing in whatever reference it may need, such as app : 然后require并调用该函数,传入可能需要的任何引用,例如app

// my-file.js
module.exports = function(app) {
  // your code here
};

// index.js
require('./path/to/my-file')(app);

Here's a basic example of moving routes into another file: 这是将路线移至另一个文件的基本示例:

// index.js
require('./path/to/some-routes')(app);

// some-routes.js
module.exports = function(app) {
  app.get('/foo', function(req, res) {
    res.send('Hi! This is foo.');
  });
  app.get('/bar', function(req, res) {
    res.send('Hi! This is bar.');
  });
  app.get('/:me', function(req, res) {
    res.send('Hi! This is '+req.params.me);
  });
};

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM