Я пытаюсь создать приложение Vue. js с бэкэндом стека MEVN и Vuex. Я настраиваю свой обработчик действий Vuex с помощью запроса GET, который запрашивает соответствующий маршрут Express GET для запроса данных, вложенных в Mon goose.
Имя пользователя передается в обработчик в качестве аргумента и добавляется к URL-адресу GET-запроса в качестве параметра:
actions: {
loadPosts: async (context, username) => {
console.log(username)
let uri = `http://localhost:4000/posts/currentuser?username=${username}`;
const response = await axios.get(uri)
context.commit('setPosts', response.data)
}
}
Соответствующий Express маршрут запрашивает activeUser.name
, который представляет Вложенные данные в Mon goose Модель:
postRoutes.route('/currentuser').get(function (req, res) {
let params = {},
username = req.query.activeUser.name
if (username) {
params.username = username
}
Post.find(params, function(err, posts){
if(err){
res.json(err);
}
else {
res.json(posts);
}
});
});
Ниже представлена моя модель Mon goose, где activeUser.name
представляет вложенные данные, запрашиваемые по маршруту Express:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
let Post = new Schema({
title: {
type: String
},
body: {
type: String,
},
activeUser: {
name: {
type: String
}
}
},{
collection: 'posts'
});
module.exports = mongoose.model('Post', Post);
Даже при такой настройке маршрут GET не отправляет ответ обратно обработчику действий. Я думал, что добавление username = req.query.activeUser.name
в маршрут express будет правильным методом для запроса вложенных данных в Mon goose, но, видимо, нет. Любые рекомендации о том, как настроить вышеуказанный маршрут Express для запроса вложенных данных в модели Mon goose? Спасибо!