首页 > 解决方案 > 如何使用 NodeJs API 将当前登录的用户名插入 mysql 表?

问题描述

用户函数.js

const myfunctions = {};
const db_model = require('../utils/query_models');
const dbConn = require('../db_config/dbConnection');
const util = require('../utils/helper');

myfunctions.authUser = function (req, res, next) {
    dbConn.rdbms.then(function (con_rdbms) {
        con_rdbms.query(db_model.sqlquery.checkuser, req.body.UserName, function (error, results, fields) {
            if (error) {
                console.log(error);
                res.setHeader("Content-Type", "application/json");
                res.send(util.methods.seterror(error));
                return;
            } else {
                if (JSON.stringify(results).length > 2) {
                    const data = req.body;
                    // console.log(data.Password);
                    // console.log(results.Password);
                    // console.log(data.UserName);  
;
                    const result = compareSync(data.Password,results[0].Password);
                    // if (req.body.Password == results[0].Password)
                    if(result)
                     {
                        var token = jwt.sign({ UserName: req.body.UserName }, 'payroll'
                        ,
                        {
                            expiresIn: "1h"
                          }
                          );
                        res.setHeader("Content-Type", "application/json");
                        res.send(util.methods.setAuthResponse(results, token)); 
                        // console.log(results);
                    } else {
                        res.setHeader("Content-Type", "application/json");
                        res.send(util.methods.passwordError("Password does not match"));
                    }
                }
                else {
                    res.setHeader("Content-Type", "application/json");
                    res.send(util.methods.passwordError("User does not exist"));
                }
            }
        });
    }).catch(err => {
        console.log(err);
        res.send(util.methods.seterror(error));
        return;
    });
}

exports.caller = myfunctions;

tokenValidation.js

const jwt = require("jsonwebtoken");

module.exports = {
  checkToken: (req, res, next) => {
if (req.url !== '/authUser' && req.url !== "/") {
    var token = req.headers['authorization'];
    console.log(token);
    if (token) {
        try {
            token = token.slice(7); //remove bearer string from token
            var decoded = jwt.verify(token, 'payroll');
            console.log(decoded);
            console.log(decoded.UserName);

            if (decoded) {
                req.decoded = decoded;
                next();
            }
        } catch (err) {
            return res.status(403).send({ success: 0, message: 'Invalid token' });
        }
    }
    else {
        return res.status(403).send({ success: 0, message: 'no token provided' });
    }
} else {
    next();
}
  }
}

查询模型.js

const qmodels = {};
const queryScript = {};
const helper = require('./helper');

//Inserting Bank...
qmodels.createBank = function (data) { 
    var insertquery = {

        bank_ifsc_code : data.bank_ifsc_code,
        bank_name : data.bank_name,
        bank_branch : data.bank_branch,
        bank_userId : helper.methods.GetUser(data.UserName)
    } 

    console.log("Inserting Bank information...");
    return insertquery;
}


exports.sqlquery = queryScript;
exports.datamodels = qmodels;

助手.js

const utils = {};

utils.seterror = function (msg) {
    return JSON.stringify({
        "status": 404,
        "error": msg
    })
}

utils.setresponse = function (result) {
    return JSON.stringify({
        "status": 200,
        "response": result
    })
}

utils.setAuthResponse = function (result, token) {
    return JSON.stringify({
        "status": 200,
        "response": result,
        "token": token
    })
}

utils.passwordError = function (msg) {
    return JSON.stringify({
        "status": 201,
        "response": msg
    })
}


utils.GetUser = function () {
    utils.setAuthResponse(result);    
}

exports.methods = utils;

在此处输入图像描述

在此处输入图像描述

大家好,我需要使用 NodeJS API 将当前登录的用户名插入到我们的 mysql数据库因为,谁在我们的数据库中插入、更新、删除了这一行。但是,在我的代码中,它一直在表中插入空的用户 ID。所以,请帮助我,我在这个代码上哪里错了?

附上的图片对你有帮助....

标签: mysqlnode.jsexpressjwtpostman

解决方案


推荐阅读