最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

如何在节点js中使用多个post函数表示mongodb

运维笔记admin10浏览0评论

如何在节点js中使用多个post函数表示mongodb

如何在节点js中使用多个post函数表示mongodb

我在这里尝试做的是使用2个函数,但我不知道如何使用它们,因为它们都是具有相同名称的post函数,我希望能够使用postman进行测试。这些都在同一个文件中

const jwt = require('jsonwebtoken');
const Joi = require('joi');
const bcrypt = require('bcrypt');
const _ = require('lodash');
const { users } = require('../models/user');
const express = require('express');
const router = express.Router();

这是第一个帖子功能

router.post('/', async (req, res) => {
const { error } = validate(req.body);
if (error) {
    return res.status(400).send(error.details[0].message);
}

let user = await users.findOne({ email: req.body.email });
if (!user) {
    return res.status(400).send('Incorrect email or password.');
}

const validPassword = await bcryptpare(req.body.password, 
user.password);
if (!validPassword) {
    return res.status(400).send('Incorrect email or password.');
}
const token = jwt.sign({ _id: user._id }, 'PrivateKey');
res.header('x-auth-token', token).send(_.pick(user, ['_id', 'name', 
'email']));
});

这是第二个帖子功能

router.post('/', async (req, res) => {
const { error } = validate(req.body);
if (error) {
    return res.status(400).send(error.details[0].message);
}

let user = await users.findOne({ email: req.body.email });
if (!user) {
    return res.status(400).send('Incorrect email or password.');
}

const validPassword = await bcryptpare(req.body.password, 
user.password);
if (!validPassword) {
    return res.status(400).send('Incorrect email or password.');
}
});

function validate(req) {
const schema = {
    email: Joi.string().min(5).max(255).required().email(),
    password: Joi.string().min(5).max(255).required()
};

return Joi.validate(req, schema);
}

最后是文件中的最后一行

module.exports = router; 
回答如下:

对于具有相同METHOD的相同REST端点,您不能拥有2个处理程序。你为什么不改变一个router.post('/login')

发布评论

评论列表(0)

  1. 暂无评论