gpt4 book ai didi

javascript - 在 server.js 文件中添加额外的逻辑

转载 作者:行者123 更新时间:2023-11-30 00:24:12 24 4
gpt4 key购买 nike

我有 server.js 文件,它是我的 Node 应用程序的起点,还负责调用 3 个不同的函数(此函数仅在服务器启动时调用一次,函数如创建子进程、验证等)没问题。

我的问题是

  1. 我是否应该将此逻辑(下面的 3 个函数)放在controller 文件夹还是可以将其保存在 server.js 文件(SOC?)上?
  2. 如果我将这些函数调用放在不同的文件中(在 Controller 中文件夹)我应该通过事件调用这些函数吗(比如事件serverIsUp...) 这种方法的示例将非常有帮助

server.js 如下所示(简而言之...)

http.createServer(app).listen(app.get('port'), function (err) {
if (err) {
console.error(err);
} else {
console.log('server listening on port ' + app.get('port'));
}
});

...
//Here it the function which is called when the server is up and running
childProcess.createProcess() ;

fileParser.parse();

invokeValidations();

最佳答案

您可以创建一个新文件(或为每个函数创建多个文件)并导出/需要该函数:

newfile.js 中导出函数

exports.invokeValidations = function () {
// Do something
}

server.js 中,您需要文件并调用函数

myFunctions = require('./newfile.js');

myFunctions.invokeValidations();

至于你是否应该,这取决于你,如果功能增加,我建议将它们放入单独的文件中以保持内容井井有条。

编辑:

要使用事件发射器,您应该创建自己的发射器:

emitter.js:

var EventEmitter = require('events').EventEmitter;
var localEmitter = new EventEmitter();

module.exports = localEmitter;

然后你应该在 server.js 和你的 module.js 中要求它

server.js:

var myEmitter = require('./emitter');
myModule = require('./module');

myEmitter.on('boot', function(){
console.log('hello world !');
});


myModule.invokeValidations();

module.js:

var myEmitter = require('./emitter');

exports.invokeValidations = function () {
myEmitter.emit('boot');
// Do something
};

完成了

关于javascript - 在 server.js 文件中添加额外的逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32032974/

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