• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Uruchamianie aplikacji MEAN na serwerze (mydevil.net)

0 głosów
297 wizyt
pytanie zadane 25 marca 2018 w JavaScript, jQuery, AJAX przez Rafineria Nowicjusz (170 p.)

Witam! 

Stworzyłem sobie lokalnie aplikację w oparciu o MEAN i wszystko pięknie działało dopóki nie postanowiłem tego przenieść na serwer. Sama aplikacja jest widoczna, ale niestety nie pobiera danych. Używam hostingu mydevil.net i zrobiłem następujące kroki:

1. Stworzyłem bazę mongo, zaimportowałem dane - działa ręczne czytanie danych z kolekcji za pomocą prostych komend typu find itp.
2. Uruchomiłem drugą stronę w innej domenie o typie nodejs, umieściłem tam pliki server.js i api.js. Na początku miałem problem z portem, ale po jego rezerwacji i wpisaniu w konsolę "node server.js" dostaję prawidłową odpowiedź: "server is running".
3. Wrzuciłem wersję produkcyjną z Angulara na stronę www - działa, aplikacja jest widoczna, ale nie ładuje danych (błąd Failed to load resource: the server responded with a status of 404 (Not Found)) 

Podsumowując, każdy z elementów wygląda ok, jeżeli spojrzymy na niego z osobna, jednak całość nie chce razem współpracować. Może ktoś miał podobne doświadczenie i jest w stanie pomóc mi w tym temacie?

Kody:

api.js

var express = require('express');
var router = express.Router();
var MongoClient = require('mongodb').MongoClient;
var ObjectID = require('mongodb').ObjectID;

const connection = (closure) => {
    return MongoClient.connect('mongodb://login:haslo@mongo23.mydevil.net/bazamongo', (err,db) => {
        if(err) {
            return console.log(err);
        }
        closure(db);
    });
}

let response = {
	status: 200,
	message: null,
	data: []
}

var sendError = (err, res) => {
	response.status = 501;
	response.message = typeof err == "object" ? err.message : err;
	res.status(501).json(response);
}

router.get('/dane',(req,res)=>{
    connection((db)=>{
        var database = db.db('bazamongo');
        database.collection('dane').find().toArray().then((dane)=>{
            response.data = dane;
            res.json(response);
        })
    })
})

server.js

var express = require('express');
var bodyParser = require('body-parser');
var path = require('path');
var http = require('http');
var app = express();
var cors = require('cors');

var api = require('./server/api.js');

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));

app.use(express.static(path.join(__dirname, 'dist')));

app.use('/', api);
app.use(cors());

app.get('*'), (req, res) => {
	res.sendFile(path.join(__dirname, 'dist/index.html'));
}

var port = process.env.PORT || '60519';
app.set('port', port);

var server = http.createServer(app);
server.listen(port, () => console.log("Server is running"));

service w Angularze

import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
import 'rxjs/add/operator/map';

@Injectable()
export class Service {
	result;
  constructor(private _http: Http) {}

    getDane() {
    return this._http.get('http://node.domena/dane').map(result => this.result = result.json().data);
    }

 

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

+3 głosów
1 odpowiedź 522 wizyt
pytanie zadane 18 kwietnia 2015 w JavaScript, jQuery, AJAX przez hypothermi Obywatel (1,180 p.)
0 głosów
1 odpowiedź 82 wizyt
pytanie zadane 1 kwietnia 2018 w SQL, bazy danych przez Dzony66 Początkujący (310 p.)
0 głosów
1 odpowiedź 148 wizyt
pytanie zadane 21 października 2016 w SQL, bazy danych przez MatexQ Bywalec (2,260 p.)
Porady nie od parady
Komentarze do pytań nie służą do odpowiadania, od tego jest wydzielona sekcja odpowiedzi. Funkcją komentarzy jest natomiast możliwość uzyskania dodatkowych informacji na temat samego posta.Komentarze

64,220 zapytań

110,613 odpowiedzi

231,872 komentarzy

46,964 pasjonatów

Przeglądających: 254
Pasjonatów: 21 Gości: 233

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...