2017-08-07 27 views
0

Ich kann nicht bekommen meine Anfrage zu arbeiten, ich benutze eckig und ich bin neu und es verwenden, weil mein Projekt diktiert, ich muss es verwenden, ich versuche, meinen Eintrag zu bekommen von meinem mongodb batabase, im ich auch einen expressjs-server führe, kleben Sie den ganzen Code an, den ich mir bitte von meinen Fehlern erzählen kann, ich bin sicher, dass es viele gibt.Ich kann meine Anfrage nicht bekommen zu arbeiten

//factory 
app.factory('whipmeet', ['$http', function($http) { 
    return $http.get('http://mongodb://127.0.0.1:27017/finalwhipmeet') 
      .success(function(data) { 
       return JSON.parse(data); 
      }) 
      .error(function(err) { 
       return err; 
      }); 
}]); 
//controller 
app.controller('MainController', ['$scope', 'whipmeet', function($scope, whipmeet) { 
    whipmeet.success(function(data) { 
    $scope.meetinfo = data, 
    $scope.meetlikes = 23; 
    }); 
}]); 

//index.html(only view) 
<!DOCTYPE html> 
<html> 
    <head> 
    <title><%= title %></title> 
    <link rel='stylesheet' href='/stylesheets/style.css' /> 
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.5/angular.min.js"></script> 
    </head> 
    <body ng-app="WhipMeetApp"> 
    <h1><%= title %></h1> 
    <p>Welcome to <%= title %></p> 
    <h1 id="test1"> teting </h1> 
    <div class="main" ng-controller="MainController"> 
    <div class="container"> 
     <div class="card" ng-repeat="meet in meets"> 
    <meet-info info="likes"></meet-info> 
    </div> 
    </div> 
    </div> 

<!-- modules --> 
<script src="/javascripts/app.js"></script> 
<!-- controllers --> 
<script src="/javascripts/controllers/MainController.js"></script> 
<!-- services --> 
<script src="/javascripts/services/whipmeet.js"></script> 
<!-- directives --> 
<script src="/javascripts/directives/meetInfo.js"></script> 
    </body> 
</html> 
//schema im trying to pull 
var mongoose = require('mongoose'); 
var Schema = mongoose.Schema; 

var MeetSchema = new Schema ({ 
     name: String, 
     location: String, 
     car: String, 
     date: Date, 
     time: Number, 
     type: String, 
     stock: Boolean 
}); 

module.exports = mongoose.model('Meet', MeetSchema); 
//error i get in console 
angular.js:9734 GET http://mongodb//127.0.0.1:27017/finalwhipmeet net::ERR_NAME_NOT_RESOLVED 


​ 

Bitte sagen Sie mir, wenn ich mehr Dateien/Code schreiben muß für diese klar sein, ich bin wirklich leid, das aus Format sein kann, aber einen Anfänger im, und ich versuche mein Bestes, dies zu setzen Nach oben durch Tutorials und Codeacademy, ich muss nur in der Lage sein, meine Daten anzuzeigen und einen Post im selben Format zu erstellen. Ich schätze die Hilfe von jedem sehr, der helfen möchte, seien Sie bitte nicht hart auf einem Noob.

//meets.js route 
var express = require('express'); 
var router = express.Router(); 

var Meet = require('../models/Meet.js'); 

/* GET /meets listing. */ 
router.get('/', function(req, res, next) { 
    Meet.find(function (err, meets) { 
    if (err) return next(err); 
    res.json(meets); 
    }); 
}); 

/* POST /meets */ 
router.post('/', function(req, res, next) { 
    Meet.create(req.body, function (err, post) { 
    if (err) return next(err); 
    res.json(post); 
    }); 
}); 

/* GET /meets/id */ 
router.get('/:id', function(req, res, next) { 
    Meet.findById(req.params.id, function (err, post) { 
    if (err) return next(err); 
    res.json(post); 
    }); 
}); 

/* PUT /meets/:id */ 
router.put('/:id', function(req, res, next) { 
    Meet.findByIdAndUpdate(req.params.id, req.body, function (err, post) { 
    if (err) return next(err); 
    res.json(post); 
    }); 
}); 

/* DELETE /meets/:id */ 
router.delete('/:id', function(req, res, next) { 
    Meet.findByIdAndRemove(req.params.id, req.body, function (err, post) { 
    if (err) return next(err); 
    res.json(post); 
    }); 
}); 

module.exports = router; 
+0

Dies ist ein falscher Ansatz. Deine eckige Fabrik sollte deine Expressrouten anrufen, die wiederum mit mongoDB mit nativem Treiber oder Wrapper wie Mongoose kommunizieren sollten. –

+0

würden Sie mir bitte ein Beispiel dafür geben, wie der Code sein muss? Ich habe auch Express-Anfragen, ich werde sie jetzt posten –

+0

@TalhaAwan könnten Sie bitte ein kleines Beispiel, wie dies getan werden sollte? Vielen Dank im Voraus –

Antwort

0

Das Beispiel verwendet Rückruf Erfolgs- und Fehlerfunktionen. Sie können Versprechen auch verwenden.

Die eckige Fabrik ruft Express-Routen auf, die mit mongoDB zum Erstellen, Aktualisieren, Löschen oder Abrufen der Operation verbunden werden und sendet die Antwort zurück an die Fabrik. Welche übergibt das Ergebnis/Fehler an den Controller.

app.controller('MainController', ['$scope', 'whipmeet', function($scope, whipmeet) { 

    //get all 
    whipmeet.getWhipmeet(function(data){ 
     $scope.meetinfo = data; 
    }, 
    function(err){ 
    console.log(err) 
    }); 

    //get one 
    whipmeet.getWhipmeet("id::1234567", function(data){ 

    }, 
    function(err){ 
    console.log(err) 
    }); 


    //create 
    whipmeet.createWhipmeet({key: "some value"}, function(data){ 

    }, 
    function(err){ 
    console.log(err) 
    }); 

}]); 


app.factory('whipmeet', ['$http', function($http) { 

    return { 
     createWhipmeet: function (obj, success, error) { 
      $http.post('/meets/', obj, {}). 
      then(function (data) { 
       success(data) 
      }, function (e) { 
       error(e); 
      }); 
     }, 

     getWhipmeets: function (success, error) { 
      $http.get('/meets/'). 
      then(function (data) { 
       success(data) 
      }, function (e) { 
       error(e); 
      }); 
     }, 

     getWhipmeet: function (id, success, error) { 
      $http.get('/meets/'+id). 
      then(function (data) { 
       success(data) 
      }, function (e) { 
       error(e); 
      }); 
     } 

    } 

}]); 
+0

Danke Talha Awan, dies gibt die Daten in die/meets Route aus, wie würde ich in der Lage sein, dies in meinen Bereich zu senden, damit ich die Daten on View anzeigen kann? –

+0

In Ihrer Route verwenden Sie bereits 'res.json (post);'. Dadurch werden die Daten an die Factory-Methode zurückgegeben, die sie auch an den Controller übergibt. Also in 'Funktion (Daten)' auf Controller sollten Sie die zurückgegebenen Daten haben –

+0

danke, also sollte ich statt nur anzeigen, legte es in eine Variable, so dass ich es teilweise anzeigen kann? –

Verwandte Themen