【问题标题】:GET request returns empty array instead of array contentsGET 请求返回空数组而不是数组内容
【发布时间】:2016-11-26 14:47:42
【问题描述】:

我是一个新手,但试图弄清楚为什么我的 GET 请求返回一个空数组,即使我知道 Mongo 数据库集合不是空的。 WordForm 集合中的每个单词形式都有一个“lexicalform”键,其值是对该集合中 LexiconEntry 对象的引用。当我以 LexiconEntry ObjectId 作为参数提交 GET 请求时,它返回一个空数组而不是数组内容。这是我的文件:

我的控制器中的 GET 路由:

api.get('/wordforms/:id', (req, res) => {
    WordForm.find({lexiconentry: req.params.id}, (err, wordforms) => {
      if (err) {
        res.send(err);
      }
      res.json(wordforms);
    });
  });

LexiconEntry 模型:

import mongoose from 'mongoose';
import WordForm from './wordform';
let Schema = mongoose.Schema;

let LexiconEntrySchema = new Schema({
  lexicalform: String,
  pos: String,
  gender: String,
  genderfull: String,
  decl: String,
  gloss: [String],
  meaning: String,
  pparts: [String],
  tags: [String],
  occurrences: Number,
  wordforms: [{type: Schema.Types.ObjectId, ref: 'Form'}]
});

module.exports = mongoose.model('LexiconEntry', LexiconEntrySchema);

WordForms 模型:

import mongoose from 'mongoose';
import LexiconEntry from './lexiconentry';
let Schema = mongoose.Schema;

let WordFormSchema = new Schema({
  form: String,
  gender: String,
  case: String,
  number: String,
  lexicalform: {
    type: Schema.Types.ObjectId,
    ref: 'LexicalForm',
    required: true
  }
});

module.exports = mongoose.model('WordForm', WordFormSchema);

【问题讨论】:

  • 您可以尝试以下建议的答案吗?您已在查询中将模型名称作为属性提供。

标签: javascript express routes


【解决方案1】:

根据上面给出的WordForm 架构,lexiconentry 架构中不存在如下查询中的 lexiconentry 属性。

api.get('/wordforms/:id', (req, res) => {
    WordForm.find({lexiconentry: req.params.id}, (err, wordforms) => {
      if (err) {
        res.send(err);
      }
      res.json(wordforms);
    });
  });

WordForm 架构中名为 lexicalform 的属性类似于您在上面尝试的属性。所以,你可以用这个来改变你的代码。

api.get('/wordforms/:id', (req, res) => {
    WordForm.find({lexicalform: req.params.id}, (err, wordforms) => {
      if (err) {
        res.send(err);
      }
      res.json(wordforms);
    });
  });

【讨论】:

    猜你喜欢
    • 2019-06-17
    • 2015-12-15
    • 1970-01-01
    • 1970-01-01
    • 2014-07-01
    • 2020-11-12
    • 2018-05-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多