6

如何在 nodejs 中对多个函数进行分组和导出?

我正在尝试在 utils.js 中对我的所有 util 函数进行分组:

async function example1 () {
    return 'example 1'
}

async function example2 () {
    return 'example 2'
}

module.exports = { example1, example2 }

然后在 home.js 中导入:

  import { example1, example2 } from '../utils'

  router.get('/', async(ctx, next) => {
    console.log(example1()) // Promise { 'example 1' }

  })

我以为我会得到'example 1'上面的测试用例?

有任何想法吗?

4

3 回答 3

18

这将是我解决您的出口问题的方法!并且不要与 混合es5 exportses6 imports这会变得非常奇怪 - 有时!

export const example1 = async () => {
   return 'example 1'
}

export const example2 = async () => {
   return 'example 2'
}


// other file
import { example1, example2 } from '../../example'
return example1()

不过,如果您必须混合它们,请告诉我!我们也可以找到解决方案!


有关导出模块的更多信息以及可能出现的问题!

MDN 导出和关于javascript 模块状态的简短故事

于 2017-08-20T10:29:57.453 回答
7

下面我分享了一种以2 种不同方式functions声明导出的方法。希望它有助于理解可以解决它的不同方法。

"use strict";
// utils.js

const ex1 = function() {
  console.log('ex1');
};

function ex2(context) {
  console.log('ex2');
};

module.exports = { example1: ex1, example2: ex2 };

您可以在另一个(外部)JS 文件(例如:app.js)中调用它们,如下所示:

// app.js
const utils = require('./utils');

utils.example1(); // logs 'ex1'
utils.example2(); // logs 'ex2'
于 2019-03-07T16:44:01.193 回答
1
async function example1 () {
    return 'example 1'
}

async function example2 () {
    return 'example 2'
}

module.exports.example1 = example1;
module.exports.example2 = example2;

像这样在 home.js 中导入:

const fun = require('./utils');
fun.example1();
于 2020-11-24T18:33:40.603 回答