这些是获取的矿山路线,当我尝试使用它时,我会收到错误错误。单个主要键值。
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 } }
就是这样。问题解决了。从更个人的角度来看,最好坚持发送选项对象,因为在开发过程中遇到的大多数软件包中,这总是更好的实现。