@AndrewRusinas

Как разбить js на файлы/модули?

Решил заняться декомпозицией кода, но столкнулся с тем, что совершенно не знаю, как это правильно сделать. Есть несколько разных методов импорта и экспорта, но все из них подразумевают наличие имён.

Как быть, если хочется просто отдельный кусок вынести в отдельный файл?
  • Вопрос задан
  • 1801 просмотр
Решения вопроса 1
lastuniverse
@lastuniverse
Всегда вокруг да около IT тем
Совершенно не понимаю зачем городить огород с оборачиванием в функцию предложенный Александр Косицын . Этот способ скорее подходит для модулей написанных для браузера, с целью изолировать их пространство имен.
Предлагаю не заморачиваться, и поступить так, как показано в оф.доке express-а:
файл с кодом роутера
var express = require('express');
var router = express.Router();

// middleware that is specific to this router
router.use(function timeLog(req, res, next) {
  console.log('Time: ', Date.now());
  next();
});
// define the home page route
router.get('/', function(req, res) {
  res.send('Birds home page');
});
// define the about route
router.get('/about', function(req, res) {
  res.send('About birds');
});

module.exports = router;
основной файл приложения
...
var birds = require('./birds');
...
app.use('/birds', birds);
...



PS: при этом имена и местоположение файлов роутеров весьма условная вещь. По факту вы можете давать им любые имена и укладывать в любые папки, главное не запутайтесь при их подключении. Например некий роутер отвечающий за чат лежит в папке `/routers/chat` и называется `main.js`. Чтобы его подключить, нам надо будет написать что то типа:
...
var chat = require('./routers/chat/main.js');
...
app.use('/chat, chat);
...
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
alex_keysi
@alex_keysi
Помог с решением? Отметь “правильный ответ”
Если этот код делает что то определенное, то выноси в отдельный файл и подключай в html разметку.
А так оборачиваешь свой функционал в функцию. И потом вызываешь где надо в твоем коде в необходимое время.
Или импортируй его напрямую, соблюдая порядок импортов. При импорте файл исполняется
Посмотри в сторону вебпака.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
Brightdata Тель-Авив
от 5 500 до 6 500 $
Rocket Брянск
от 60 000 до 100 000 ₽
22 мая 2024, в 07:09
50000 руб./за проект
22 мая 2024, в 02:15
10000 руб./за проект
21 мая 2024, в 23:47
30000 руб./за проект