尝试通过连接前端(Flutter)到后端(Node.JS)来构建API

问题描述 投票:0回答:1

所以现在我正在尝试将后端(Node.JS)连接到前端(Flutter)。但我无法,我只是收到连接错误。我相信这与终端没有指定我的 node.JS 应用程序正在侦听的端口(3000)有关。之前当我运行“npm start”时,它会显示它正在监听 PORT 3000,现在当我运行它时,它只是说它已成功连接到 MongoDB。

据我所知,我的入口点index.js或Flutter(main.dart)没有错误。奇怪的是,我能够在 Xcode iOS 模拟器中打开登录屏幕,但它无法正常工作。我将发送所有内容的屏幕截图。这是 main.dart 的代码

我会复制并粘贴 main.dart 和 index.js 的代码,但堆栈溢出具有非常愚蠢的格式化规则

请帮忙,我已经被这个问题困扰好几天了,我什至转发了 3000 端口但没有成功。

我每次都尝试运行“npm start”,它显示的只是 MongoDB 已连接。它没有显示任何有关 PORT 的信息。我试图在两个主文件中使用 nodeMail 作为 userMail,但我删除了它们,因为我遇到了很多问题。

现在我正在检查每一行代码的index.js,以确保我没有做错任何事情

node.js mongodb flutter port vscode-debugger
1个回答
0
投票

您可以检查以下几件事,

1.服务器代码: 验证指定端口的 Node.js 服务器中的代码。寻找类似这样的东西:

const port = process.env.PORT || 3000; // This line specifies the port
app.listen(port, () => {
    console.log(`Server running on port ${port}`);
});

确保服务器确实设置为侦听端口 3000 或检查它是否使用环境变量中指定的其他端口(例如 process.env.PORT)。

2.终端输出: 如果您的服务器代码应该在启动时记录端口,但它没有这样做,则日志记录配置可能存在问题,或者服务器可能由于错误而无法到达该点。检查终端日志中是否有任何可能阻止服务器正确启动的错误或警告。

3.环境变量: 验证环境配置或脚本中是否有任何可能影响端口分配或服务器启动命令 (npm start) 的更改。现在端口配置可能有不同的设置。

4.网络: 确保不存在阻止连接的网络相关问题。有时防火墙或其他网络配置可能会阻止后端和前端之间的通信。

5.Flutter side url 错误,你不能像下面这样使用 localhost 作为你的 url,

final loginUrl = Uri.parse('http://localhost:3000/api/user/loginUser');

使用 localhost 的 ip 实例,如下面的代码段,

final loginUrl = Uri.parse('http://10.0.2.2:3000/api/user/loginUser');

尝试这些解决方案来解决您的问题。

© www.soinside.com 2019 - 2024. All rights reserved.