请稍等 ...
×

采纳答案成功!

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

正在回答 回答被采纳积分+3

5回答

提问者 wx_small_bug 2021-03-01 11:07:26

cookie俩行注释掉的时候

当我把cookie俩行注释掉的时候https://img1.sycdn.imooc.com/szimg/603c5a4209fcda2909370514.jpg返回的就是https://img1.sycdn.imooc.com//szimg/603c5a5a092a851107930231.jpg能请求 但是失败的接口了

0 回复 有任何疑惑可以回复我~
  • 双越 #1
    你要顺着代码捋一下,为何返回这个结果?debug 一下
    回复 有任何疑惑可以回复我~ 2021-03-01 16:25:19
  • 提问者 wx_small_bug 回复 双越 #2
    const  blogResult  后面打印就是undefined了,没有进到if里面
    回复 有任何疑惑可以回复我~ 2021-03-01 16:47:53
  • 双越 回复 提问者 wx_small_bug #3
    顺着这个思路,继续往下排查就行。
    回复 有任何疑惑可以回复我~ 2021-03-01 19:35:56
双越 2021-02-27 08:24:21

根据你提供的代码,我没法一眼看出问题,我之前也没遇到过这个问题。接下来要排查这个问题,只能用一个笨方法,也是最有效的方法。

你新建一个空的 nodejs 项目,然后执行 set-cookie ,看是否报错?(即,单独调试 set-cookie 功能,不让其他功能掺和进来)

0 回复 有任何疑惑可以回复我~
  • 提问者 wx_small_bug #1
    单独的时候是ok的.....
    回复 有任何疑惑可以回复我~ 2021-03-01 11:00:35
提问者 wx_small_bug 2021-02-26 17:46:02

   //解析session (使用redis)

    let needSetCookie = false

    let userId = req.cookie.userid

    if(!userId){

        needSetCookie = true

        userId =`${Date.now()}_${Math.random()}`

        //初始化 session

        set(userId,{})

    }

  req.sessionId = userId

    get( req.sessionId).then(sessionData=>{

          if(sessionData ==null){

              //初始化redis 中session的值

            set(req.sessionId,{})

            //设置session

            req.session ={}

          }else{

                 //设置session

              req.session = sessionData

          }

          console.log('req.session',req.session)

           //处理post data

   return  getPostData(req)

    }).then(postData => {

        console.log(postData)

        req.body = postData

        //处理blog路由

        const blogResult = handleBlogRouter(req, res)

        if (blogResult) {

            blogResult.then(blogData => {

                if (needSetCookie) {

                    console.log(needSetCookie)

                    res.setHeader('Set-Cookie', `userid=${userId};path=/; httpOnly; expires=${getCookieExpires}`)

                }

                res.end(

                    JSON.stringify(blogData)

                )

            })

            return

        }

        const userResult = handleUserRouter(req, res)

        if (userResult) {

            userResult.then(userData => {

                if (needSetCookie) {

                    res.setHeader('Set-Cookie', `userid=${userId};path=/; httpOnly; expires=${getCookieExpires}`)

                }

                res.end(

                    JSON.stringify(userData)

                )

            })

            return

        }


0 回复 有任何疑惑可以回复我~
提问者 wx_small_bug 2021-02-26 09:52:13

//img1.sycdn.imooc.com//szimg/60385d4c09e4723216120676.jpghttps://img1.sycdn.imooc.com//szimg/6038648f0918299b11250238.jpgset-cookie  这个是报错是什么原因呢

0 回复 有任何疑惑可以回复我~
  • 双越 #1
    看错误提示,set-cookie 那里报错了,你检查一下。
    如果查不到,就把相关代码贴出来。
    回复 有任何疑惑可以回复我~ 2021-02-26 16:25:49
  • 提问者 wx_small_bug 回复 双越 #2
    重头看了一遍视频,打印了一下,cookie里面的空的 但是不清楚具体哪里设置错了
    回复 有任何疑惑可以回复我~ 2021-02-26 17:32:33
双越 2021-02-25 19:15:57

看下你的 nodejs 后端,是否接收到了 /api/user/login 的请求?

0 回复 有任何疑惑可以回复我~
  • 提问者 wx_small_bug #1
    nodejs启动成功了的
    回复 有任何疑惑可以回复我~ 2021-02-26 09:51:36
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信