Узел JS Express включает / импортирует / экспортирует - PullRequest
1 голос
/ 06 апреля 2019

Хорошо, так что в основном я пытаюсь изучить и освоить модули экспорта / импорта в 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 Ответ

2 голосов
/ 06 апреля 2019

Вам необходимо либо иметь экземпляр приложения в отдельном модуле, чтобы его можно было импортировать в нескольких местах:

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(...);
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...