嗨我有一个快速路由器,当我导航到正确的路线时似乎没有被击中。在我的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然而我甚至无法记录你好的世界。
答案 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);
})