为什么我的路线没被击中?

时间:2016-03-10 18:28:48

标签: javascript node.js express

嗨我有一个快速路由器,当我导航到正确的路线时似乎没有被击中。在我的app.js中:

var auth = require('./routes/auth');
app.use('/auth', auth);

在我的routes / auth.js

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

var router = function(){
    authRouter.route('/signUp')
        .post(function (req, res){
            console.log("Hello world");
    });
    return authRouter;
};

module.exports = router;

在我的index.jade中:

form.login-form(role='form', action='/auth/signUp', method='post', name='signUpForm' )
                  .form-group
                    label.sr-only(for='form-username') Username
                    input#form-username.form-username.form-control(type='text', name='userName', placeholder='Email...')
                  .form-group
                    label.sr-only(for='form-password') Password
                    input#form-password.form-password.form-control(type='password', name='password', placeholder='Password...')
                  button.btn(type='submit') Sign up!

然而,当我尝试进入/ auth / signUp时,我进入终端的所有内容是:GET / auth / signUp - - ms - - POST / auth / signUp - - ms - -

在我看来,我的auth / signUp永远不会被击中。我本来想尝试console.log我的req.body然而我甚至无法记录你好的世界。

3 个答案:

答案 0 :(得分:2)

您将路由器包装在一个从未调用过的函数中。试着这样做:

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


authRouter.route('/signUp').post(function (req, res){
  console.log("Hello world");
});


module.exports = authRouter;

答案 1 :(得分:1)

首先,你不应该像signUp那样使用套管网址。试试这个:

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

var router = function(){
  authRouter.post('/sign-up', function (req, res) {
    console.log("Hello world");
  });

  return authRouter;
};

module.exports = router;

答案 2 :(得分:0)

您使用错误的方式定义路由器。改为使用这种方式。

var express = require('express');
var authRouter = express.Router();
authRouter.post('signUp', function(req, res) {
   // in this code block you have to render text, html or object
   res.render('index'); // or may be res.json(some_obj);
})