【发布时间】:2018-05-26 06:00:29
【问题描述】:
我正在创建一个 MEAN APP,注册后我想检查电子邮件是否已经存在。但是 GET 请求没有显示任何内容。也没有错误。
server.js
...
// Set user routes
const userRoutes = require('./user/user_controller');
app.use('/user', userRoutes);
...'
user_controller.js
router.get('/:email', (req, res) => {
console.log('Requesting user');
User.findOne({'email': req.params.email})
.exec(function(err, user) {
if(err) {
console.log('Error getting the post');
} else {
res.send(user);
}
});
});
GET 路由永远不会进入,因为我在路由的开头也没有看到 console.log。当我调用 localhost/user?email=email
时,我希望路由能够正常工作我有一个 POST 路由,它非常适合本地主机/用户 - 只是为了比较
router.post('/', (req, res) => {
user = req.body;
// Validation
req.checkBody('firstName', "Enter a valid firstname").exists().isAlpha();
req.checkBody('lastName', 'Enter a valid lastname').exists().isAlpha();
req.checkBody('email', 'Enter a valid email').exists().isEmail();
req.checkBody('password', 'Enter a valid password').exists().isLength({min:8});
const errors = req.validationErrors();
if(errors) {
res.json({errors: errors});
} else {
User.create(user)
.then((user) => res.send(user));
}
});
【问题讨论】:
-
您正在使用参数,那么您可以将其称为
localhost/user/someemail。当您致电localhost/user?email=email时,您的路线永远不会与提供的路线匹配
标签: node.js express mongoose mean-stack