当前位置: 首页 > 知识库问答 >
问题:

NodeJS模块化

梁盛
2023-03-14

例如,我希望将我的套接字路由.get.post拆分为不同的文件,但仍然可以使用回调参数,如下所示:

app.io.route("disconnect", function(req,res) { <--- these params
    db.query("UPDATE player_data SET online=0 WHERE id="+mysql.escape(req.session.user));
    req.io.broadcast("event", {msg:req.session.username+" has logged out!"});
    app.io.broadcast("reloadXY");
});

到目前为止,它们都在一个文件中,我不喜欢这样。

共有1个答案

裴楚青
2023-03-14

我想这个人所说的“传递”的意思是这样的(直白地说):

app.get('/kittens', function(req, res) {
  db.doAthing(req);
  updateSomethingElse(res);
  upvoteThisAnswer(res);
});

也就是说,在第一个函数之外传递两个变量。这是不好的,因为它变得越来越难弄清楚呼叫实际上在哪里结束。UpdateSomethingElse中的一个小小的res.end(500)可能会导致整个纸牌屋倒塌。

在其他地方(通常是项目的/routes目录)声明回调是完全可以的(事实上,在express中是标准的,甚至是默认的)

// app.js

var user = require('./routes/user')
  , kittens = require('./routes/kittens');

// express stuff...

app.get('/settings', user.getSettings);
app.get('/fur', kittens.shed);
exports.getSettings = function(req, res) {
  // Note how we're passing around properties of req/res, not the objects themselves.
  db.getUserSettings(req.user.id).then(function(settings) {
    res.render('settings', settings);
  });
};
 类似资料:
  • nodejs的出现,可以算是前端里程碑式的一个事件,它让前端攻城狮们摆脱了浏览器的束缚,踏上了一个更加宽广的舞台。前端的可能性,从此更加具有想象空间。 随着一系列基于nodes的应用/工具的出现,工作中与nodejs打交道的机会越来越多。无论在node应用的开发,还是使用中,包管理都扮演着一个很重要的作用。NPM(node package manager),作为node的包管理工具,极大地便利了我

  • 本文向大家介绍详解Nodejs的timers模块,包括了详解Nodejs的timers模块的使用技巧和注意事项,需要的朋友参考一下 本模块,属于来模拟一些浏览器自带方法的模块,比如setTimeout,clearTimeout等方法,之所以会有该模块,在我看来,也是为了能让前端工程师使用起来,更简单,使用一个单独的模块,来把浏览器上的功能来模拟出来,那么就可以直接减少学习的成本,这样就可以花更少的

  • 问题内容: 我想知道配置模块导出的最佳方法是什么。在下面的示例中,“ async.function”可以是FS或HTTP请求,为示例起见简化了该请求: 这是示例代码(asynmodule.js): 如何仅在执行异步回调后导出模块? 编辑 有关我的实际用例的简短说明:我正在编写一个模块,用于在fs.exists()回调中配置nconf(https://github.com/flatiron/ncon

  • 本文向大家介绍详解nodejs 文本操作模块-fs模块(五),包括了详解nodejs 文本操作模块-fs模块(五)的使用技巧和注意事项,需要的朋友参考一下 fs模块是一个比较庞大的模块,在前面也介绍了该模块中最核心的一点东西,虽然核心的这点东西,在整个fs模块中占据的比例比较小,但是如果只是我们平常使用的话,基本已经够用了,其他的一些方法,属于能力提升时需要学习的的内容了,所以在后面就不再继续了,

  • 本文向大家介绍NodeJs中的VM模块详解,包括了NodeJs中的VM模块详解的使用技巧和注意事项,需要的朋友参考一下 什么是VM? VM模块是NodeJS里面的核心模块,支撑了require方法和NodeJS的运行机制,我们有些时候可能也要用到VM模板来做一些特殊的事情。 通过VM,JS可以被编译后立即执行或者编译保存下来稍后执行(JavaScript code can be compiled

  • 本文向大家介绍深入理解Nodejs Global 模块,包括了深入理解Nodejs Global 模块的使用技巧和注意事项,需要的朋友参考一下 浏览器上有自己的全局对象 window,同理, nodejs 下也有自己的全局对象 global,并且在各个模块下 都可以直接访问 global 对象。 在 nodejs 中,除了可以直接使用 V8 JavaScript 引擎中所支持的原生 JavaScr