【问题标题】:How to use module.exports in expressJs?如何在 expressJs 中使用 module.exports?
【发布时间】:2021-06-24 15:11:40
【问题描述】:

所以我用 discord js 制作了这个不和谐的机器人,我想添加一些前端来喜欢使用网站而不是命令来改变一些东西,但我不能或者我只是不知道如何 在 expressjs 中使用 module.exports 我尝试了一些类似的东西

var server = website.listen(8080, function() {
    var port = server.address().port;
    console.log("Server started at http://localhost:%s", port);
});

还有这个

website.use('/vars.js', main)

但这些都不起作用;;-;

编辑:我忘了提,但“main”是 vars.js 中的模块

(vars.js 的代码)

module.exports = {
    "token": process.env.DISCORDJS_BOT_TOKEN,
    "creator": process.env.mainUserID,
    "creatorPing": "<@" + process.env.mainUserID + ">",
    "status": "Ay Bros",
    "version": "2.0.7"

}

下一个编辑: 我真的不想从这个文件中导出函数,但是变量,因为函数不能改变我的机器人状态,我希望能够修改变量,所以我的机器人会改变它的状态:P

【问题讨论】:

  • main.jsmodule.exports = main。在根文件中:const main = require('./main.js')
  • 哦,对不起,我忘了说 main 是 vars.js 中的模块

标签: javascript node.js express


【解决方案1】:

这取决于您要如何导出main 函数。您可以通过以下方式进行:

  1. 使用默认导出/导入
// vars.js
function main() {...}
module.exports = main;

// root file
const main = require('./vars.js');
website.use(main);
  1. 使用命名导出/导入:
// vars.js
function main() {...}
module.exports = { main };

// root file
const { main } = require('./vars.js');
website.use(main);

您遇到的另一个问题是.use 函数的错误使用。它应该接收一个函数,而不是一个文件名。所以你需要导入函数然后使用它,就像我在示例中所做的那样。

【讨论】:

  • 我不想导出函数,但能够导出变量并修改它们,以便我可以通过网站进行更改
  • const variables = require('./vars.js');
  • 是的:未捕获的 ReferenceError:require 未定义在(索引):16
【解决方案2】:

这取决于如何导出你想要的函数,但几乎开发人员遵循这种模式在 nodejs 中导出函数。

function getUser() {
    // Code here
}

function getUsers() {
    // Code here
}

module.exports = {
    getUser,
    getUsers
}

这将输出:

getUser: [Function: getUser], getUsers: [Function: getUsers] }

这为我们提供了函数名称,并在文件末尾清楚地记录了 API,此模式名称为 revealing the module pattern

【讨论】:

  • 但我不想真正导出函数而是变量
  • 你可以这样做 //module.js var name='foobar'; var city='xyz'; var company='公司名称'; module.exports={ name, city, company } 用法 // main.js require('./modules');控制台.log(名称); // 打印'foobar'
猜你喜欢
  • 2017-01-09
  • 1970-01-01
  • 2019-05-19
  • 1970-01-01
  • 2020-04-03
  • 2021-04-23
  • 2019-12-09
  • 1970-01-01
  • 2016-01-25
相关资源
最近更新 更多