如何在nodejs中分组和导出多个函数?
我正在尝试将所有的util函数分组到utils.js中:
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'
上面的测试用例?
有什么想法吗?
答案 0 :(得分:2)
这将是我出口问题的解决方案!并且不要将es5 exports
与es6 imports
混合,这可能会非常奇怪 - 有时候!
export const example1 = async () => {
return 'example 1'
}
export const example2 = async () => {
return 'example 2'
}
// other file
import { example1, example2 } from '../../example'
return example1()
然而,如果你必须混合它们,请告诉我!我们也可以为此找到解决方案!
有关导出模块的更多信息以及可能出现的问题!
的简短故事答案 1 :(得分:1)
下面,我分享了一种以 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'
答案 2 :(得分: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();