请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

数据插入不成功找不出是哪里的问题?

老师,新建博客postman显示错误,已经实际调用数据了,我的代码没有写错呀,感觉blogData显示 Promise { }有问题
图片描述
图片描述图片描述图片描述

正在回答

5回答

我看了你的代码 https://github.com/WUDANRU/blog-1-promise-test- ,找到问题了,帮你分析一下。


第一,你代码中 src/router/blog.js 57 行开始,处理 /api/blog/new 路由,返回的是一个 promise

if (method === 'POST' && req.path == '/api/blog/new') {

    //   之前的;
    // const data = newBlog(req.body) //controller的blog.js(blogData = {}等于req.body
    // return new SuccessModel(data)

    // 现在的:
    req.body.author = 'zhangsan' //新建博客没有author,写一个author的假数据 (假数据,待开发登录时再改成真实数据)
    const result = newBlog(req.body) //result是controller/blog.js的id(id: insertData.insertId)
    return result.then(data => { //postman显示404 not found,所以需要return promise(虽然没有return但是数据的值(conroller/blog.js)是有插入,可以在mysql测试有没有插入:select * from blogs;)
        console.log('datadata', data) //{ id: 17 }
        return new SuccessModel(data)
    })
}

第二,你代码中,app.js 52行开始,接收到的数据,肯定就是上面所说的 promise 对象

if (blogData) {
    console.log('blogblog', blogData) // 老师这个显示Promise { <pending> },但是cmd能显示出{id:28},postman显示的是{}
    res.end(
        JSON.stringify(blogData) //postman的send后的body显示错的{},因为blogData不对
    )
    return
}

promise 是一个异步,你没等它执行完,直接 res.end ,那可定是拿不到值的。


第三,你再看看讲师的代码,代码中做了改动,等 then 之后再 res.end(还把之前代码做了注释,来对比)

https://img1.sycdn.imooc.com//szimg/5f9bd3f50922057d30601290.jpg


最后,我好奇问一下。我一直建议你自己去顺着代码逻辑排查 bug ,但是你一直没查到。到底是什么原因呢?

  • promise 的基本应用没搞懂?

  • 没仔细去查?

  • 查了,但是逻辑没看明白?

  • 还是其他?


因为回答你这个问题,占据了我太多的事件,希望你能回复一下,我也借机去看看课程是否真的有遗漏。

0 回复 有任何疑惑可以回复我~
提问者 鹿人神经粉 2020-10-30 07:14:05

老师,代码已上传,github地址:https://github.com/WUDANRU/blog-1-promise-test-.git

 blog/detail和blog/new都是真数据cmd打印的是对的,就是两个显示的都是{}

0 回复 有任何疑惑可以回复我~
  • 双越 #1
    收到了,我这两天看看吧。阅读代码,花费时间要久一点。
    回复 有任何疑惑可以回复我~ 2020-10-30 09:16:16
  • 提问者 鹿人神经粉 回复 双越 #2
    好的?
    回复 有任何疑惑可以回复我~ 2020-10-30 12:20:00
双越 2020-10-29 18:42:52

额。。这个截图,我看着都懵了。搞不懂这些截图都是哪个文件里的。


按照调试的一般步骤,慢慢来吧。

首先,看你 postman 里最后返回的是 {} ,代码中最后返回的数据是什么?这个数据是怎么来的?

0 回复 有任何疑惑可以回复我~
提问者 鹿人神经粉 2020-10-29 12:57:04

https://img1.sycdn.imooc.com/szimg/5f9a4b710963a87c06510535.jpg

https://img1.sycdn.imooc.com//szimg/5f9a4b710943653c12850913.jpg

new blog的截图


0 回复 有任何疑惑可以回复我~
双越 2020-10-29 09:11:21

我都没看明白,你是哪里报错了?没看到有错误提示

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信