2016-10-11 2 views
1

Ich benutze nodemailer, um die E-Mail des Benutzers zu überprüfen, wenn sie sich anmelden. Es sendet eine E-Mail mit einem Link (etwa localhost: 3000/verify /? Id = ##).Anfrage Abfrage String-Knoten

Wenn sie auf den Link klicken, funktioniert es und ich kann sehen, eine GET-Anfrage wurde gemacht.

GET /verify/?id=141 200 2.582 ms - 4638 

Ich versuchte dies:

api.get('/verify/?id=', function(req, res) { 
    console.log('verify request has been made'); // doesn't log on console 
}) 

Und ich habe auch versucht, dies:

api.get('/verify', function(req, res) { 
    console.log(req.query.id); 
    console.log(req.param.id); 
}) 

basierend auf Antworten auf Fragen, die ich hier und anderswo beantwortet gesehen hatte, aber nichts protokolliert wird.

Außerdem benutze ich Angular (mit ngRoute), also könnte es auch etwas am Frontend geben, aber ich bin neu im MEAN Stack und weiß nicht wo ich anfangen soll.

bearbeiten Hier ist die Front-End:

app.routes.js

angular.module('appRoutes', ['ngRoute']) 
.config(function($routeProvider, $locationProvider) { 

    $routeProvider 
    .when('/', { 
     templateUrl: 'app/views/pages/map.html', 
     controller: 'MainController', 
    }) 
    .when('/verify/:username', { 
     templateUrl: 'app/verify/verify.html', 
     controller: 'verifyController' 
    }) 
    $locationProvider.html5Mode({ enabled: true, requireBase: false });; 
}) 

verifyController.js

angular.module('verifyController', ['verifySerivice']) 
    .controller('verifyController', function($routeParams, verify){ 
     console.log('in verify controller'); 
     var id = $routeParams.id; 
     verify.verifyUser(id); 
}) 

verifyService.js

angular.module('verifyService', []) 

    .factory('verify', function($http) { 

    var verifyFactory = {}; 

    verifyFactory.verifyUser = function(id) { 
     console.log('verify service accessed'); 
     return $http.get('/verify', id) 
     .then(handleSuccess, handleError); 
    } 

    return verifyFactory; 
    }) 
+0

Erhalten Sie 404 oder erhalten undefinierten Abfragewert? – abdulbarik

+0

Ich bekomme kein 404. Es sagt auch nichts ist nicht definiert, aber keine der console.log Anweisungen werden ausgeführt. –

Antwort

1

Können Sie den Routing-Code und den Code angeben, den Sie verwenden, um die Anfrage zu stellen? Wenn Angular Ihr Routing bearbeitet, wird die Anforderung möglicherweise nie zum Knotenserver gesendet, wenn Sie die URL über die Adressleiste des Browsers anfordern. Wenn Sie das HTTP-Modul verwenden, um eine AJAX-Anfrage zu erhalten, wäre das ebenfalls hilfreich.

+1

Ich habe den Winkelcode hinzugefügt, den ich habe. –

+0

Basiert auf einem kurzen Blick, scheint es, dass Sie das angulare http.get falsch verwenden. Es erwartet einen Pfad als ersten Parameter und ein Konfigurationsobjekt als zweiten: https://docs.angularjs.org/api/ng/service/$http#get –

+0

Ich denke, Sie müssen die ID auf den Pfad concatonate, also http.get ("verify? id =" + id, configObject). Versuchen Sie auch, ein Konsolenprotokoll von "Testing" in der Knotenroute zu werfen, um zu sehen, ob es überhaupt getroffen wird. –

Verwandte Themen