javascript - Item.filter 不是函数
问题描述
大家好,我正在制定路线以获取由登录用户创建的项目,但是当我使用 .filter 函数时出现错误。不知道为什么我会收到这个错误。在做同样的事情之前我已经制作了其他应用程序并且从未出错
Item.filter 不是函数
我的物品路线
const requireAuth = require("../middleware/requireAuth");
const express = require("express");
const mongoose = require("mongoose");
const Item = mongoose.model("Item");
router.get("/my-items", requireAuth, async (req, res) => {
try {
const items = Item.filter((item) => item.userId === req.user.userId);
res.send(items);
} catch (err) {
console.log(err);
}
});
项目架构
const mongoose = require("mongoose");
const itemSchema = new mongoose.Schema({
userId: {
type: mongoose.Schema.Types.ObjectId,
ref: "User",
},
phone: {
type: mongoose.Schema.Types.String,
ref: "User",
},
email: {
type: mongoose.Schema.Types.String,
ref: "User",
},
seller: {
type: mongoose.Schema.Types.String,
ref: "User",
},
title: {
type: String,
required: true,
},
category: {
type: String,
required: true,
},
detail: {
type: String,
requiredL: true,
},
condition: {
type: String,
required: true,
},
price: {
type: Number,
required: true,
},
});
mongoose.model("Item", itemSchema);
解决方案
Item
是模型而不是数据库中的文档,您需要先进行查询才能获取项目。
router.get("/my-items", requireAuth, async (req, res) => {
try {
const query = Item.find()
query.exec().then(items => {
const filteredItems = items.filter((item) => item.userId === req.user.userId);
res.send(items);
})
} catch (err) {
console.log(err);
}
});
推荐阅读
- javascript - 如何绑定或传递控制器范围值作为 angularjs 自定义指令模板中的范围?
- php - Laravel 在刀片中计算
- powershell - 一个作业如何在 Powershell 中创建其他作业
- mysql - SQL CONCAT 转 JSON
- php - 是否可以为所有用户只打开一个数据库连接?
- angular6 - Angular 6调用并将函数从父组件传递给子组件
- artifactory - 从 6.0.1 升级到 6.1.0 后 Artifactory 不会启动
- nginx - 将代理位置反向到 docker 容器
- java - 这行在 Java 中是什么意思
- angular - Angular 6 - 类型'Operator Function<{},{}> 上不存在属性'subscribe'?