【问题标题】:Node JS Express include/import/exportNode JS Express 包含/导入/导出
【发布时间】:2019-08-28 09:09:21
【问题描述】:

好的,所以基本上我正在尝试学习并掌握 Node.js 中的导出/导入模块。我创建了一个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()

【问题讨论】:

    标签: javascript node.js express import module


    【解决方案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(...);
    };
    

    【讨论】:

    • 这对我来说更有意义。谢谢!看起来这里不适合第一个选项。
    猜你喜欢
    • 2020-10-19
    • 2019-05-23
    • 1970-01-01
    • 1970-01-01
    • 2021-06-19
    • 1970-01-01
    • 2015-07-03
    • 2017-07-21
    • 2017-09-28
    相关资源
    最近更新 更多