项目问题
来源:14-1 课程总结
啁啾良
2022-04-22
- 删除文章的 author 已经对应上 用户的 _id 删除文章传的时候也是对应传的文章 _id 还是报500错误 icode已经在param跟form中都添加了 接口报 500错误 错误提示为Internal Server Error ,传递的参数 http://apis.imooc.com/api/posts/626178cbb558154f0392fd47?icode=784D21A26AE995BC icode: 784D21A26AE995BC
{icode: “784D21A26AE995BC”}
icode: “784D21A26AE995BC” param 跟form 都有
2。上传图片 图片大小84k idcode 也都加了 const Icode = '784D21A26AE995BC’
axios.interceptors.request.use(config => {
config.params = { …config.params, icode: Icode }
if (config.method === ‘post’) {
config.data = { …config.data, icode: Icode }
} else if (config.method === ‘delete’) {
config.data = { …config.data, icode: Icode }
} else if (config.method === ‘patch’) {
config.data = { …config.data, icode: Icode }
}
store.commit(‘setLoading’, true)
store.commit(‘setError’, { status: false, message: ‘’ })
return config
})
也是报500错误
3.创建文章之后并不能在专题栏中看到,说明没有实际添加到数据中,但是接口创建文章时候200 数据也是返回正常
3回答
-
张轩
2022-04-22
同学你好
课程接口都是调试过 正常可以使用的 http://api.vikingship.xyz/public/swagger/index.html
请把你的代码库(git)提供给我吧,我在本地帮你调试一下,帮你解决一下这几个问题
142022-04-22 -
啁啾良
提问者
2022-04-23
老师不好意思再问一下,这两个代码有什么区别
老师在问下 那个 创建文章时候要填写的 column 字段 是从哪里来的 这是我请求的数据 curl -X GET "http://api.vikingship.xyz/api/user/current" -H "accept: application/json" -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7Il9pZCI6IjYyNjJkZWFkZmMwZjkzMDk5N2IwM2FiOCIsImVtYWlsIjoiMTExMXFxcUBxcS5jb20iLCJuaWNrTmFtZSI6IjEyMyIsInBhc3N3b3JkIjoiJDJhJDEwJGRsNEpOdlhwWHBiYnVSLk1wdTRHck8yaFhYOVp2VUFaUWJkOGFFejRNNkU1akpjc2JWQlF1Iiwicm9sZSI6eyJfaWQiOiI1ZTYwNjk4YmRiNjBmNjRiNTdlMzYxMzMiLCJuYW1lIjoibm9ybWFsVXNlciIsIl9fdiI6MCwiY3JlYXRlZEF0IjoiMjAyMC0wMy0wNVQwMjo1Mjo1OS44MDhaIiwiYWNjZXNzIjoidXNlciJ9LCJfX3YiOjAsImNyZWF0ZWRBdCI6IjIwMjItMDQtMjJUMTY6NTg6MjEuMDY2WiJ9LCJleHAiOjE2NTEyNTE1NTAsImlhdCI6MTY1MDY0Njc1MH0.xaJ3ycAzRRsRHAJK8iYURFQNg0QfJdVfUtZ4BZQP9io" 获取的用户数据中并没有column{ "code": 0, "data": { "_id": "6262deadfc0f930997b03ab8", "email": "1111qqq@qq.com", "nickName": "123" }, "msg": "请求成功"}
00 -
张轩
2022-04-22
同学你好
你新问的问题:为什么没法持久话登陆状态,是因为你在 GlobalHeader直接删除了这个状态
GlobalHeader.vue 45 行
const exitLogin = store1.commit('logout') 你这里应该是点击以后调用对应的方法,不是直接调用。。。 // 比如 const handleLogout = () => { store.commit('logout') } 然后模版:<dropdown-item> <a href="#" class="dropdown-item" @click="handleLogout">退出登陆</a> </dropdown-item> // 还有为什么 store中 isLogin 一开始你设置为 true? 我没搞懂你的逻辑 user: { isLogin: false }
第一个问题 第二个问题:请直接使用 7-5 的代码axios 拦截器的代码,你那样写不正确,那样会造成发送 POST 请求的时候,不会使用 Formdata 的数据而直接转换成了普通的 object。你可以看一下你现在上传以后的请求,Payload 中不是Formdata 类型的数据。main.ts 修改为
config.params = { ...config.params, icode: Icode } if (config.data instanceof FormData) { config.data.append('icode', Icode) } else { // 普通的 body 对象,添加到 data 中 config.data = { ...config.data, icode: Icode } }
亲测已经上传成功,如图,特别注意payload 中的数据类型
第一个问题也是一样,你搞混乱了 delete 的数据。修改以后就可用了。
第三个问题,你在 store 中写错了,直接将返回的所有数据保存到了 store 中,而不是对应的新的 post 数据。
createPost (state, newPost) { state.posts.data[newPost._id] = newPost }, 应该为 createPost(state, { data }) { state.posts.data[data._id] = data },
同学提个建议:我觉得你是clone 了所有代码,然后在上面修改这种方式来学习的,这样很容易出现各种问题,建议你跟着课程一点点的编码,这样要好很多,出现问题也知道从哪里下手。
052022-04-23
相似问题