gpt4 book ai didi

javascript - 使用 module.exports 将expressJS中的服务器对象公开到另一个文件

转载 作者:行者123 更新时间:2023-11-27 23:44:33 26 4
gpt4 key购买 nike

在我正在构建的expressJS应用程序中,我需要将服务器对象公开给另一个文件,所以我想我可以像这样从app.js文件到我的路由之一

var server = http.createServer(app).listen(4021, function () {

var port = server.address().port;

console.log('http://localhost:%d', port);
});

module.exports = server;

app.js 文件

我已经记录了这个文件中的变量,它包含一个带有关于服务器的一堆数据的对象。在我的routes.js 文件中,我认为会使用 require 引入它

var server = require('../../server');

但是,如果我在服务器变量上使用来自route.js的console.log,它就是一个空对象。任何想法我做错了什么

最佳答案

像您定义的那样的循环依赖项可能很难实现和调试。这不会具体回答您的问题,但如果端口号是您在 route 唯一需要的,那么我建议您采取更简单的方法。也许中间件将端口号添加到请求对象,从而将其暴露给路由:

app.use(function(req, res, next) {
req.port = 4021;
next();
});

这是另一个与您类似的问题:Expose vs Creating object in Router file of Nodejs 。看一下,但我无法将其修改为您的示例。

关于javascript - 使用 module.exports 将expressJS中的服务器对象公开到另一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33347208/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com