【发布时间】: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 => ..),并且 get_test() observable 没有被订阅。只需检查指南中的示例并粘贴即可。 -
所以
curl localhost:8080打印出recieved所以我知道这是有效的。我认为我不需要写出所有成功/错误代码,因为我只是想看看我是否可以使用我的服务,但我会尝试的。 -
@estus 你能解释一下这是什么意思吗:
get_test() observable isn't subscribed?我没有使用 nativescript 内容的指南,我构建了应用程序而没有先查看任何后端内容。现在后悔了。
标签: angular go localhost nativescript