javascript - 为什么导出函数会出现这种异常行为
问题描述
我在编写节点应用程序方面有一些经验,但是在这个带有代码的典型 JS 文件中遇到了这个问题
代理.js
const proxy = {
host: '127.0.0.1'
};
exports.ProxyUrl = () => {
return `http://${proxy.host}`;
}
从另一个 JS 文件调用此文件时
index.js
const proxyUrl = require('./proxy.js');
console.log(proxyUrl);
它应该打印“127.0.0.1”,但在控制台中打印
() => {
return `http://${proxy.host}`;
}
这只发生在这个 JS 文件中,我的 JS 文件的其余部分运行良好。
解决方案
该exports
对象完全等同于require
来自另一个文件的 a 所解析的内容。所以,当你赋值给对象的一个ProxyUrl
属性时,导入的对象就会有一个属性和一个ProxyUrl
属性。
如果您希望导出只是函数,而不是具有属性的对象,则分配给module.exports
:
const proxy = {
host: '127.0.0.1'
};
module.exports = () => {
return `http://${proxy.host}`;
};
然后你可以
const proxyUrl = require('./proxy.js');
console.log(proxyUrl());
否则,使用您的原始代码,您必须首先访问d 对象的ProxyUrl
属性:require
const { ProxyUrl } = require('./proxy.js');
console.log(ProxyUrl());
推荐阅读
- memcached - Memaslap(memcached 测试工具)中的吞吐量设置似乎不起作用
- module - 如何使用 Raku 中的 FindBin 等价物在 Raku 中加载相对于脚本的模块
- asp.net - 值不能为空。参数名称:fileStream
- javascript - 使用 chance.js 生成日期和时间
- android - Android Studio - Gradle 同步连接超时
- r - 在选项中添加圆形参数
- mongodb - MongoDB 不适用于 Catalina。不断报错
- python - 即使在中断后程序循环
- swift - 从服务器视频 url 创建的缩略图在滚动 tableview 时不断变化
- r - R:在矩阵中找到最小值