[英]Why is my route not being hit?
嗨,我有一个快速路由器,当我导航到正确的路线时似乎没有受到打击。 在我的app.js中:
var auth = require('./routes/auth');
app.use('/auth', auth);
在我的路由/ 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,但是我什至无法登录一个hello world。
您将路由器包装在一个永不调用的函数中。 尝试只这样做:
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;
首先,您不应该真正使用诸如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;
您使用错误的方式定义路由器。 请改用这种方式。
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);
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.