我正在尝试发出以下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请求失败的其他问题,但似乎没有任何问题与此问题有关。任何帮助将不胜感激。