【问题标题】:Developing Golang backend locally for Nativescript mobile application为 Nativescript 移动应用程序本地开发 Golang 后端
【发布时间】:2018-04-13 23:36:46
【问题描述】:

我正在开发一个 Nativescript 移动应用程序,同时尝试设计一个 Golang 后端。我没有实际部署后端的经验,所以现在我只是尝试在本地开发。所以我的模拟应用程序上有一些按钮:

import { Http } from "@angular/http"                                                                

+@Component({...}
+export class LoginComponent implements OnInit {...}{

    . . .

    // <Button ... (tap)="get_test()"></Button> 
    public get_test(){                                                                              
        this.http.get("http://localhost:8080/");                                                    
    }                                                                                               

}  

还有一个我从golang website复制的小型网络服务器:

 package main

 import (
     "log"
     "net/http"
 )

 func handler(w http.ResponseWriter, r *http.Request) {
     print("recieved")
 }

 func main() {
     http.HandleFunc("/", handler)
     log.Fatal(http.ListenAndServe(":8080", nil))
 }

我启动go“服务器”:

go build main.go
./main

现在我的想法是,通过单击按钮,命令行应该打印出recieved,我可以使用它来设计我的请求。然而,双方都没有发生任何事情。代码中可能有很多错误,我什至不确定你是否可以在本地模拟它。但我们将不胜感激。

【问题讨论】:

  • 连接到 http://localhost:8080/ 仅在您使用 IOS 设备时才有效 如果您使用默认 avd 或 http://10.0.3.2:8080 如果您使用 genymotion 您也可以每次有变化时使用go run main.go而不是调用build
  • 谢谢,很遗憾这不起作用,我的命令行仍未打印。我刚刚看到@angular/http 可能是过时的版本,所以我要试试@angular/common/http
  • 您可以在 Angular 之外调试后端,以确保它正确响应。 @angular/http 已弃用但可行。你使用不正确。没有.map(res =&gt; ..),并且 get_test() observable 没有被订阅。只需检查指南中的示例并粘贴即可。
  • 所以curl localhost:8080 打印出recieved 所以我知道这是有效的。我认为我不需要写出所有成功/错误代码,因为我只是想看看我是否可以使用我的服务,但我会尝试的。
  • @estus 你能解释一下这是什么意思吗:get_test() observable isn't subscribed?我没有使用 nativescript 内容的指南,我构建了应用程序而没有先查看任何后端内容。现在后悔了。

标签: angular go localhost nativescript


【解决方案1】:

您的服务器端代码没有任何问题。在我看来,要么(a)您的前端代码实际上并没有触发 http 请求(您应该能够通过附加到浏览器的调试器来检测)或(b)您的前端正在尝试发出请求但没有不知道如何找到服务器(即网络问题)。

【讨论】:

    猜你喜欢
    • 2021-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-27
    • 1970-01-01
    • 1970-01-01
    • 2019-12-29
    • 2011-05-13
    相关资源
    最近更新 更多