Node,Mongoose,Redux:GET请求失败

时间:2018-03-13 16:14:10

标签: node.js mongoose redux axios mongoose-schema

我正在尝试发出以下get请求,该请求仅用于从集合中返回文档。一旦我获得数据,它应该通过reducer流入redux状态对象。但是get请求失败了。

var QuestionModel = require('./src/models/fv-questionModel')

mongoose.connect('mongodb://localhost/FVDB')

var app = express();

app.use(compression())
app.use(express.static(path.join(__dirname, 'public')));
app.set('port', process.env.PORT || 8080);

app.get('/api/recent', (request, response) => {
  if (error) {
    console.log(error)
  }
  // Get documents and perform callback on recentQuestions data
  QuestionModel.find((error, recentQuestions) => {
    if (error) {
      response.send('unable to retrieve data')
    } else {
      response.json(recentQuestions)
    }
  })
})

此请求一直有效,直到我更改了集合中的数据结构。这是我目前的猫鼬模式:

const questionSchema = new mongoose.Schema({
  title: String,
  options: [{ oid: Number, choice: { name: String, count: Number } }],
  qid: Number,
})

const QuestionModel = mongoose.model('Question', questionSchema, 'questionBank')

module.exports = QuestionModel

之前的架构:

const questionSchema = new mongoose.Schema({
  title: String,
  options: Array,
  qid: Number,
})

以下是发出GET请求的Redux操作:

export function recentQuestions() {
  let recentQs = axios.get('/api/recent')
  return {
    type: 'GET_RECENT',
    payload: recentQs,
  }
}

用于处理该数据的reducer:

export default function(state = null, action) {
  switch (action.type) {
  case 'GET_RECENT':
    return action.payload.data
  }
  return state
}

但是当发出GET请求时,它会返回'404:Not Found'错误。当我将浏览器导航到localhost:8080 / api / recent时,我收到消息'无法GET / api / recent'。快递服务器本身正在运行。

我不能为我的生活找出为什么这个要求不再有效。我知道有关GET请求失败的其他问题,但似乎没有任何问题与此问题有关。任何帮助将不胜感激。

0 个答案:

没有答案