Javascript-форум (https://javascript.ru/forum/)
-   Angular.js (https://javascript.ru/forum/angular/)
-   -   Разместил файлы Angular-2 на хостинге не работает http://localhost (json server) (https://javascript.ru/forum/angular/72536-razmestil-fajjly-angular-2-na-khostinge-ne-rabotaet-http-localhost-json-server.html)

Иван2017 05.02.2018 15:18

Разместил файлы Angular-2 на хостинге не работает http://localhost (json server)
 
Всем привет!

Разместил проект по Angular 2 на сайте.
Репозиторий проекта на GitHub: https://github.com/freestyle2018/angular-ivan


"scripts": {
    "server": "json-server --watch file.json --port 3000",
    "start": "concurrently --kill-others \"ng serve\" \"npm run server\""
  },


На localhost все прекрасно отрабатывает Json Server.
После выполнения команды "ng build" программа генерирует файлы в папку dist, которые можно залить на сайт.

document.service.ts
getDocument(): Observable<Document[]> {
    return this.http.get<Document[]>(`http://localhost:3000/documents`);

  }


  addDocument(document: Document, max_id, today) {
    const body = {id: max_id, name: document.name, text: today, autor: document.autor};
    return this.http.post(`http://localhost:3000/documents`, body);
  }


  deleteDocument(document: Document) {
    const body = {id: document.id, name: document.name, text: document.text, autor: document.autor};
    return this.http.delete(`http://localhost:3000/documents/`+ document.id);
  }


  updateDocument(document: Document) {
    const body = {id: document.id, name: document.name, text: document.text, autor: document.autor};
    return this.http.put(`http://localhost:3000/documents/`+ document.id, body);
  }



сам file.json

{
  "documents": [
    {
      "id": 478,
      "name": "Букварь вер",
      "text": 1517577886502,
      "autor": "Сергей Лимонов"
    },
    {
      "id": 498,
      "name": "Документ",
      "text": 1517577886502,
      "autor": "Влада Комкова"
    },
    {
      "id": 501,
      "name": "Документ",
      "text": 1517577886502,
      "autor": "Иван Пономаренко"
    },
    {
      "id": 505,
      "name": "Мостовой кран",
      "text": 1517765343574,
      "autor": "Дмитрий Хрусталев"
    }
  ]
}


----------------------------------
На самом хостинге Get запрос отрабатывает поскольку несколько изменил код:
1.
[{
      "id": 478,
      "name": "Букварь вер",
      "text": 1517577886502,
      "autor": "Сергей Лимонов"
    },
    {
      "id": 498,
      "name": "Документ",
      "text": 1517577886502,
      "autor": "Влада Комкова"
    },
    {
      "id": 501,
      "name": "Документ",
      "text": 1517577886502,
      "autor": "Иван Пономаренко"
    },
    {
      "id": 505,
      "name": "Мостовой кран",
      "text": 1517765343574,
      "autor": "Дмитрий Хрусталев"
    }]



main.bundle.js
DocumentService.prototype.getDocument = function () {
        return this.http.get("file.json");
    };



Большая просьба, подскажите, как сделать, что на отработал Json Server?

destus 05.02.2018 19:50

import 'rxjs/add/operator/map';
...
return this.http.get("file.json").map(response => response['documents'])

Иван2017 06.02.2018 20:52

Спасибо за оперативный ответ!

Большая просьба подскажи, как заменить эти строки кода:
DocumentService.prototype.addDocument = function (document, max_id, today) {
   var body = { id: max_id, name: document.name, text: today, autor: document.autor };
   return this.http.post("http://localhost:3000/documents", body);
};

и
DocumentService.prototype.deleteDocument = function (document) {
   var body = { id: document.id, name: document.name, text: document.text, autor: document.autor };
   return this.http.delete("http://localhost:3000/documents/" + document.id);
};



Пробовал в первом случае вставить код:
return this.http.post("file.json").map(response => response['documents']).subscribe(data => this.body=data);


Но не отрабатывает.
Мучался полдня. Я в Angular 4 новичок.

Буду очень признателен за помощь.

destus 07.02.2018 07:07

Иван2017,
Чтобы делать put, post, delete запросы нужно либо ставить на хостинг node.js и поднимать также json-server, либо использовать сторонние сервисы. Как видите, json-server под капотом поднимает express-сервер, и создает middleware для ключей в файле json.


Часовой пояс GMT +3, время: 06:40.