错误:无效值 { username: { '$eq': 'admin' } } by sequelize

编程入门 行业动态 更新时间:2024-10-04 17:26:56

<a href=https://www.elefans.com/category/jswz/34/1771449.html style=错误:无效值 { username: { '$eq': 'admin' } } by sequelize"/>

错误:无效值 { username: { '$eq': 'admin' } } by sequelize

我正在尝试为后端制作一个登录路由器,用户可以使用他的电子邮件或他的用户名登录。为此,代码会尝试在数据库中查找用户名或电子邮件。但是当我运行代码并将 json 数据发送到登录路由器时,出现以下错误:

throw new Error(`Invalid value ${logger.inspect(val)}`);
          ^

Error: Invalid value { username: { '$eq': 'admin' } }
    at Object.escape (D:\programmeerstuff\javascript\pws\version 0.0.1\server\node_modules\sequelize\lib\sql-string.js:53:11)
    at MySQLQueryGenerator.escape (D:\programmeerstuff\javascript\pws\version 0.0.1\server\node_modules\sequelize\lib\dialects\abstract\query-generator.js:763:22)
    at D:\programmeerstuff\javascript\pws\version 0.0.1\server\node_modules\sequelize\lib\dialects\abstract\query-generator.js:1989:71
    at Array.map (<anonymous>)
    at MySQLQueryGenerator._whereParseSingleValueObject (D:\programmeerstuff\javascript\pws\version 0.0.1\server\node_modules\sequelize\lib\dialects\abstract\query-generator.js:1989:52)
    at MySQLQueryGenerator.whereItemQuery (D:\programmeerstuff\javascript\pws\version 0.0.1\server\node_modules\sequelize\lib\dialects\abstract\query-generator.js:1805:19)
    at D:\programmeerstuff\javascript\pws\version 0.0.1\server\node_modules\sequelize\lib\dialects\abstract\query-generator.js:1730:25
    at Array.forEach (<anonymous>)
    at MySQLQueryGenerator.whereItemsQuery (D:\programmeerstuff\javascript\pws\version 0.0.1\server\node_modules\sequelize\lib\dialects\abstract\query-generator.js:1728:35)
    at MySQLQueryGenerator.getWhereConditions (D:\programmeerstuff\javascript\pws\version 0.0.1\server\node_modules\sequelize\lib\dialects\abstract\query-generator.js:2071:19)

Node.js v18.12.0
[nodemon] app crashed - waiting for file changes before starting...

这里是 user.js 代码:

const express = require("express");
const router = express.Router();
const { Users } = require("../models");
const bcrypt = require("bcrypt");

router.post("/login", async (req, res) => {
  const { username, password } = req.body;
  console.log(req.body);
  console.log(username);

  const user = await Users.findAll({
    where: {
      $or: [
        {
          username: {
            $eq: username
          }
        },
        {
          email:{
            $eq: username
          }
        }
      ]
    },
  });
  if (!user) {
    res.json({ error: "password or username incorrect" });
  }

  bcryptpare(password, user.password).then((match) => {
    if (!match) res.json({ error: "password or username incorrect" });
  });
});

数据库index.js:

'use strict';

const fs = require('fs');
const path = require('path');
const Sequelize = require('sequelize');
const basename = path.basename(__filename);
const env = process.env.NODE_ENV || 'development';
const config = require(__dirname + '/../config/config.json')[env];
const db = {};
const Op = Sequelize.Op;
const operatorsAliases = {
  $eq: Op.eq,
  $ne: Op.ne,
  $any: Op.any,
  $all: Op.all,
  $values: Op.values,
  $col: Op.col
};

let sequelize;
if (config.use_env_variable) {
  sequelize = new Sequelize(process.env[config.use_env_variable], config, { operatorsAliases });
} else {
  sequelize = new Sequelize(config.database, config.username, config.password, config, { operatorsAliases });
}

fs
  .readdirSync(__dirname)
  .filter(file => {
    return (file.indexOf('.') !== 0) && (file !== basename) && (file.slice(-3) === '.js');
  })
  .forEach(file => {
    const model = require(path.join(__dirname, file))(sequelize, Sequelize.DataTypes);
    db[model.name] = model;
  });

Object.keys(db).forEach(modelName => {
  if (db[modelName].associate) {
    db[modelName].associate(db);
  }
});

db.sequelize = sequelize;
db.Sequelize = Sequelize;

module.exports = db;

我尝试使用这个问题中的 awnser:Sequelize invalid value Symbol(ne) 但我得到了与上面相同的错误。

回答如下:

我有同样的问题。在我的例子中,我传递了一个错误类型的变量。 您需要检查:

  1. 你的表中的列名是否匹配
  2. 确保传递具有正确数据类型的变量(与数据库中的类型进行比较)

更多推荐

错误:无效值 { username: { '$eq': 'admin' } } by sequelize

本文发布于:2024-05-30 21:11:33,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1770928.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:错误   username   sequelize   admin   eq

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!