gpt4 book ai didi

node.js - 在 NodeJS 应用程序中分离 socket.io 相关代码的最佳实践是什么?

转载 作者:太空宇宙 更新时间:2023-11-03 22:14:12 25 4
gpt4 key购买 nike

我是 NodeJS 新手。所以我正在使用 socket.io 编写 NodeJS 应用程序。

我了解如何分离 Controller 。在我的应用程序中我创建了: Controller /userCtrl.jscontroller/marketCtrl.js 等在 userCtrl.js Controller 中,我这样做了:

exports.create = function(req, res) {
// Create user
}

// Other actions

在应用程序中我使用它:

// ...
var userCtrl = require('./controllers/userCtrl');
app.post('/user', userCtrl.create);
// ...

与型号相同。但我在 app.js 中有很多与 socket.io 相关的代码,并且不明白如何从 app.js 中删除它(如 Controller ):

var frontend = io.of('/frontend');
frontend.on('connection', function (client) {
logger.info('Someone connected to frontend socket');
client.on('join', function (message) {
logger.info('In join event');
var token = message.token;
if (!token) {
logger.debug('No usertoken provided. Sending login required');
client.emit('join', {error: 103, message: 'Login required', data: null});
return;
}
//... etc..

我的问题是:如何将socket.io相关代码拆分到文件中?它的最佳实践是什么?谢谢你!

最佳答案

不同的文件仍然是这样。使用 exportsmodule.exports,然后在 app.js 中使用 require

也许可以创建一个 setup() 函数来接收 app/http 实例,或者您在 socket.io 中需要的任何其他内容,然后在 app 中的正确时间调用该函数。 js。

--socketSetup.js--

'use strict';
var io = require('socket.io');
function setup( app, logger, whatever ){
//do stuff here
}
module.exports = setup;

--app.js--

'use strict';
var express = require('express');
var socketSetup = require('./socketSetup.js');

var app = express();
//other express things

//setup the socket stuff
socketSetup( app, logger );

结果是一个更短、更易读的 app.js 文件,并且还包含您的套接字设置。随着 socketSetup.js 文件中内容的增长也重复此操作。

关于node.js - 在 NodeJS 应用程序中分离 socket.io 相关代码的最佳实践是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34284821/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com