我正在尝试使用 Vue、Express、Node 和 MongoDB 构建一个基本的登录/注册应用程序。我已成功设置 Express 路由器以启用用户注册和登录,并将基本用户信息存储在 MongoDB 中。我试图在登录后将用户数据返回到屏幕。到目前为止,我已经router.get()在 Express 中设置了将所有用户的用户名返回到屏幕。但是,我想将axios.get()Vue.js 中的方法配置为仅返回登录用户的用户名,而不是存储在 MongoDB 中的所有用户名。通常在 Firebase 中,我会使用类似的东西let snapshot = await ref.where('userid', '==', firebase.auth().currentUser.uid).get()来专门发送有关当前用户的信息。如何设置我的axios.get()方法来执行类似的操作?我的代码如下:
登录页面
<template>
<b-row>
<b-col cols="12">
<h2>
You are now logged in!
<b-link @click="logout()">(Logout)</b-link>
</h2>
<table style="width:100%">
<tr>
<th>User Names</th>
</tr>
<tr v-for="user in users" :key="user._id">
<td>{{ user.username }}</td>
</tr>
</table>
<ul v-if="errors && errors.length">
<li v-for="error of errors" :key="error._id">
<b-alert show>{{error.message}}</b-alert>
</li>
</ul>
</b-col>
</b-row>
</template>
<script>
import axios from 'axios'
export default {
name: 'BookList',
data () {
return {
users: [],
errors: []
}
},
created () {
axios.defaults.headers.common['Authorization'] = localStorage.getItem('jwtToken')
axios.get(`http://localhost:3000/api/auth`)
.then(response => {
this.users = response.data
})
},
methods: {
logout () {
localStorage.removeItem('jwtToken')
this.$router.push({
name: 'Login'
})
}
}
}
</script>
Express 中的 GET 路由
router.get('/', function(req, res) {
User.find(function (err, products) {
if (err) return next(err);
res.json(products);
});
});
慕妹3242003
相关分类