Возможно, мне просто не хватает «более крупной картины», но мне трудно понять, зачем нужно экспортировать модули, чтобы просто разделить файлы. Я пытался сделать что-то вроде этого:Узел js, разделение файлов без необходимости передавать зависимости вокруг?
//server.js
var app = require('koa')();
var othermodule1 = require('othermodule1')();
var othermodule2 = require('othermodule2')();
var router = require('./config/routes')();
app.use(router.routes());
//routes.js
module.exports = require('koa-router')()
.get('*', function*(next){
othermodule1.something;
})
понимая, что routes.js не имеет доступа к «othermodule1» после вызова из serverjs. Я знаю, что есть способ передать необходимые переменные во время вызова require, но у меня есть намного больше, чем только 2 модуля, которые мне нужно будет передать. Поэтому из-за моей, вероятно, наивной перспективы, это кажется излишне громоздким. Кто-то хочет просветить меня или есть ли способ сделать это, что я пропустил?
Спасибо за объяснение! Итак, для моего конкретного случая использования с маршрутами, справедливо ли говорить, что это полезно, если мне вдруг захочется переключиться, чтобы выразить по какой-то причине на моем сервере.js, все еще желая koa-маршрутизации? – House3272
@ House3272 - Я не понимаю, что «переключение на экспресс» имеет отношение к вашему вопросу вообще. Все мои комментарии о модулях применяются независимо от того, какой framework.js вы используете или не используете. – jfriend00
О, извините. То, что вы сказали, дает полный смысл для модулей узлов, которые можно установить через npm. Но для моего собственного кода (например, route.js, который очень специфичен для моего одного сервера), я не вижу большой ценности при модуляции, поскольку он не будет использоваться совместно или что-то еще. Мой первый комментарий заключался в том, что я пытался увидеть, как это будет полезно haha. Я подумал, возможно, если бы захотел переключиться, чтобы выразить какую-то другую часть моего приложения, продолжая использовать koa для маршрутизации. – House3272