我有一个文件C:\Users\XY\AppData\
,它只是导出一个配置对象:
config.ts
我有另一个名为const config = {
baseURL: <string> 'http://example.com',
};
export default config;
的文件,它导入配置对象并导出一个使用该配置对象的函数。
methods.ts
我在快递路由器内调用import config from './config';
export function someMethod() {
let url = config.baseURL;
...
}
:
someMethod
当调用此import { someMethod } from '../methods';
router.get('/something', function(req, res, next) {
let x = someMethod();
...
});
时,someMethod
变量为config
。似乎undefined
在以后调用时无法从同一文件中看到导入的数据。这样做的正确方法是什么?
答案 0 :(得分:0)
Node将您的模块包装在名为the module wrapper的IIFE中,因此即使它在您的模块中是全局的,它实际上仍然是本地的。
如果您想要访问模块之外的config
,则需要明确导出它。
function someMethod() {
let url = config.baseURL;
...
}
export { someMethod, config };
如果config
对于多个文件实际上是通用的,您可以使用Dependency Injection并将config
移动到包含需要配置的路由器的文件中。
将someMethod
更改为接受config
// methods.ts
function someMethod(config) {
let url = config.baseURL;
...
}
export { someMethod };
在路由器中导入./config
,然后将config
传递到someMethod
// router
import config from './config'
import { someMethod } from '../methods';
router.get('/something', function(req, res, next) {
let x = someMethod(config);
...
});
答案 1 :(得分:0)
我相信您可以做到
import config from './config';
var Config = config
export function someMethod() { console.log(Config) }