传递给FindOne的参数必须是一个选项对象,如果您想传递单个主密钥值,请使用FindbyId,我在semelize中完



这些是获取的矿山路线,当我尝试使用它时,我会收到错误错误。单个主要键值。

  var express = require('express');
        var router = express.Router();
        var expressValidator = require('express-validator');
        var bodyParser=require('body-parser');
        var models=require('../models');
        var mkdirp=require('mkdirp');
        var fs=require('fs-extra');
        var resizeImg=require('resize-img');

          // Get Product model
        var Product = require('../models/product');
            // Get Product model
            var Category = require('../models/category');
                /*
                * Get products index 
                */
                router.get('/',function(req,res){
                    var count;
                    models.Product.count(function(c){
                        count=c;
                    })
                   models.Product.find(function(err,products){
                    res.render('admin/products',{
                        products:products,
                        count:count
                    });
                   });
                });

这是我获取产品的获取方法

                    /*
                    * GET add product
                    */
        router.get('/add-product', function (req, res) {
            var title = "";
            var desc = "";
            var price = "";
            models.Category.find(function (err, categories) {
                res.render('admin/add_product', {
                    title: title,
                    desc: desc,
                    categories: categories,
                    price: price
                });
            });

        });
        module.exports = router;

查找方法期望第一个参数是包含过滤器的对象。这样尝试:

        models.Category.find({}, function (err, categories) {
            res.render('admin/add_product', {
                title: title,
                desc: desc,
                categories: categories,
                price: price
            });
        });

我今天遇到了这个错误。也修复了它。归结为此。您有两个功能。

函数1(期望选项对象(

函数2(期望单个钥匙值(

如果您调用单个密钥值的函数1,显然,这是一种类型的不匹配,在某种程度上。当然,这似乎是过去的常态(我认为(。因此,标准错误返回,说,当您应该发送选项对象时,您将发送一个值。

这(在某种程度上(类似于将int发送到一个函数,这是期望字符串的。

所以,这里有两种解决方案。

解决方案1-使用已经建议的替代功能。多数民众赞成,问题解决了。(这取决于您的情况,以及您编写的代码以及所使用的库(。

解决方案2-给出功能1所期望的。那将是一个选项对象。

在我的情况下,我决定使用选项对象调用功能1。该代码看起来像这样。

const user = await SQUser.findOne({ where: { username: username } });

在这里非常具体,是我发送的对象。

{ where: { username: username } }

就是这样。问题解决了。从更个人的角度来看,最好坚持发送选项对象,因为在开发过程中遇到的大多数软件包中,这总是更好的实现。

相关内容

最新更新