#javascript #node.js #express #import #module
#javascript #node.js #экспресс #импорт #модуль
Вопрос:
Хорошо, итак, в основном я пытаюсь изучить и освоиться с модулями экспорта / импорта в Node. Я создал app.js
, который содержит, все. Чтобы сделать app.js
файл немного чище и удобочитаемее, я пытаюсь включить .js
файл из другой папки ( middleware/sass.js)
, как бы мне это сделать?
Мой sass.js
файл выглядит следующим образом:
let sassMiddleware = require('node-sass-middleware');
app.use(
sassMiddleware({
src: path.join(__dirname, 'resources/scss'),
dest: path.join(__dirname, 'public/css'),
debug: true,
indentedSyntax: false,
outputStyle: 'compressed',
prefix: '/css'
})
);
Как мне «включить» это в app.js
, не имея всего этого там? Я бы сказал, что я пытаюсь сделать что-то вроде PHP include()
Ответ №1:
Вам нужно либо иметь экземпляр приложения в отдельном модуле, чтобы его можно было импортировать в несколько мест:
index.js
require('./sass');
const app = require('./app');
app.listen(...);
app.js
...
const app = express();
module.exports = app;
sass.js
const app = require('./app');
...
app.use(...);
Или используйте внедрение зависимостей и оберните все части, которые зависят от экземпляра приложения, функцией:
index.js
const app = require('./app');
require('./sass')(app);
app.listen(...);
sass.js
...
module.exports = app => {
app.use(...);
};
Комментарии:
1. Для меня это имело больше смысла. Спасибо! Похоже, здесь я остановлюсь на первом варианте.