Javascript 登录时无法进行post查询

Javascript 登录时无法进行post查询,javascript,node.js,bcrypt,Javascript,Node.js,Bcrypt,我正在尝试使用bcrypt验证用户的密码。但是,不幸的是,我的post请求不起作用,它只是加载了很长一段时间,仅此而已 我有一个模型user.js,代码如下: UserSchema.methods.comparePasswords = function (password) { return bcrypt.compare(password, this.password); }; export const signin = async (req, res, next) => {

我正在尝试使用bcrypt验证用户的密码。但是,不幸的是,我的post请求不起作用,它只是加载了很长一段时间,仅此而已

我有一个模型user.js,代码如下:

UserSchema.methods.comparePasswords = function (password) {
    return bcrypt.compare(password, this.password);
};
export const signin = async (req, res, next) => {
    const { login, password } = req.body;

    const user = await User.findOne({ login });

    if (!user) {
        return next({
            status: 400,
            message: 'User not found'
        });
    }

    try {
        const result = await user.comparePasswords(password);
    } catch (e) {
        return next({
            status: 400,
            message: 'Bad Credentials'
        });
    }

    req.session.userId = user._id;
    req.json(user);
};
我有一个控制器auth.js,代码如下:

UserSchema.methods.comparePasswords = function (password) {
    return bcrypt.compare(password, this.password);
};
export const signin = async (req, res, next) => {
    const { login, password } = req.body;

    const user = await User.findOne({ login });

    if (!user) {
        return next({
            status: 400,
            message: 'User not found'
        });
    }

    try {
        const result = await user.comparePasswords(password);
    } catch (e) {
        return next({
            status: 400,
            message: 'Bad Credentials'
        });
    }

    req.session.userId = user._id;
    req.json(user);
};

处理不正确的输入效果很好,服务器会为我返回错误消息,但不会处理正确的输入。

您的意思是执行
res.json(user)
?您使用的是什么bcrypt库?此版本bcrypt Ok,因为名为bcrypt nodejs的版本有一个
bcrypt.compare()
不返回承诺的函数。我想爆炸药丸回答了这个问题。你的意思是做
res.json(user)
?你在使用什么bcrypt库?这个版本bcrypt可以,因为名为bcrypt nodejs的有一个
bcrypt.compare()
函数不返回承诺。我想爆炸药片回答了这个问题。