猿问

无法使用 dart 和 angular2 客户端运行 GolLang 后端

我使用本教程使用 GoLang、Angular2 和 Dart 制作 Web 应用程序,但是当我通过控制台命令“backend”启动后端,并在浏览器中路由到“localhost:8080/”时,它必须从 Dart 的类“Hello”中调用方法,但是它没有调用,我收到 404 错误。我从教程中得到的所有代码都没有改变任何东西。而且我找不到任何其他教程。你能解释一下我做错了什么吗?


高朗代码:


func main() {

   http.Handle("/", http.FileServer(http.Dir("./app/web/")))


   fmt.Println("Text")

   http.HandleFunc("/api/hello", helloWorld)

   http.ListenAndServe(":8080", nil)


}

func helloWorld(w http.ResponseWriter, r *http.Request) {

   data := struct {

       Message string

   }{

       "Hello, World",

   }


   if err := json.NewEncoder(w).Encode(data); err != nil {

       log.Println(err)

   }

}

和角度飞镖代码:


class AppComponent {

   Hello hello = new Hello();

}


class Hello{

  String message;


  Hello(){


    HttpRequest.getString('/api/hello')

        .then((String content) {

          Map parsedMap = JSON.decode(content);

          message = parsedMap["Message"];

        })

        .catchError((Error error) {

          print(error.toString());

        });

  }

}

我使用本教程使用 GoLang、Angular2 和 Dart 制作 Web 应用程序,但是当我通过控制台命令“backend”启动后端,并在浏览器中路由到“localhost:8080/”时,它必须从 Dart 的类“Hello”中调用方法,但是它没有调用,我收到 404 错误。我从教程中得到的所有代码都没有改变任何东西。而且我找不到任何其他教程。你能解释一下我做错了什么吗?

高朗代码:

func main() {
   http.Handle("/", http.FileServer(http.Dir("./app/web/")))
   fmt.Println("Text")
   http.HandleFunc("/api/hello", helloWorld)
   http.ListenAndServe(":8080", nil)}func helloWorld(w http.ResponseWriter, r *http.Request) {
   data := struct {
       Message string
   }{
       "Hello, World",
   }
   if err := json.NewEncoder(w).Encode(data); err != nil {
       log.Println(err)
   }}

和角度飞镖代码:

class AppComponent {
   Hello hello = new Hello();}class Hello{
  String message;
  Hello(){
    HttpRequest.getString('/api/hello')
        .then((String content) {          Map parsedMap = JSON.decode(content);
          message = parsedMap["Message"];
        })
        .catchError((Error error) {          print(error.toString());
        });
  }}

和项目结构:


慕田峪9158850
浏览 167回答 1
1回答

qq_遁去的一_1

教程已经很老了。您需要切换到HashLocationStrategy(据我所知,这是当时的默认设置)。见https://angular.io/docs/ts/latest/api/router/HashLocationStrategy-class.html改变bootstrap(AppComponent);到bootstrap(AppComponent, [  ROUTER_PROVIDERS,  provide(LocationStrategy, {useClass: HashLocationStrategy})]);您还需要添加一些额外的导入import 'package:angular2/router.dart'    show        HashLocationStrategy,        LocationStrategy,        ROUTER_PROVIDERS;
随时随地看视频慕课网APP

相关分类

Python
我要回答