获取请求查询字符串节点

时间:2016-10-11 18:48:11

标签: javascript angularjs node.js

我在注册时使用nodemailer验证用户的电子邮件。它会发送一封带有链接的电子邮件(类似于localhost:3000 / verify /?id = ##)。

当他们点击链接时,它可以工作,我可以看到已经发出GET请求。

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

我试过了:

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

我也试过这个:

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

根据我在这里和其他地方看到的问题的回答,但没有记录。

另外,我使用Angular(使用ngRoute)所以它也可能在前端发生了一些事情,但我是MEAN堆栈的新手,并且不知道从哪里开始。< / p>

修改 这是前端:

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;
  })

1 个答案:

答案 0 :(得分:1)

您能提供路由代码和用于提出请求的代码吗? 如果Angular正在处理您的路由,如果您通过浏览器的地址栏请求URL,请求可能永远不会实际进入节点服务器。如果您使用http模块来发出get AJAX请求,那么查看也会很有帮助。