Node JS Express包含/导入/导出

时间:2019-04-06 19:33:30

标签: javascript node.js express import module

好的,所以基本上我想学习并掌握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 个答案:

答案 0 :(得分:2)

您需要将应用程序实例放在单独的模块中,以便可以将其导入多个位置:

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(...);
};