美文网首页
配置Parse Server Cloud Code的调试环境

配置Parse Server Cloud Code的调试环境

作者: 启发禅悟 | 来源:发表于2022-10-16 17:28 被阅读0次

    如何调试?首先我们需要明确的是对Parse Server进行调试,而Parse Server本质是一个Node服务,所以最终转化为对node服务的调试。

    通过分析Parse Server的Dockerfile的ENTRYPOINT

    ENTRYPOINT ["node", "./bin/parse-server"]
    

    结合我们的Docker Compose文件的Command指令

    command: /parse-server/config/config.json
    

    其实最终的Parse Server是通过下面这样的命令来启动的

    node ./bin/parse-server /parse-server/config/config.json 
    

    我们可以通过添加--inspect参数来为node开启调试,同时通过Docker Compose的entrypoint参数来覆盖Parse Server Dockfile中的ENTRYPOINT指令。

    因此,最终,我们修改compose.yaml文件的parse-server部分如下:

    parse-server:
        image: parseplatform/parse-server
        container_name: parse-server
        volumes:
          - ./parse-server/config:/parse-server/config
          - ./parse-server/cloud:/parse-server/cloud
          - ./logs/parse-server:/parse-server/logs
        ports:
          - "1337:1337"  
          - "9229:9229"
        depends_on:
          - mongo
        entrypoint: node --inspect=0.0.0.0 ./bin/parse-server /parse-server/config/config.json
        networks:
          - internal-network  
    

    开放9229端口,用于调试。同时通过制定entrypoint参数,开启node的inspect调试。注意这里我们使用了=0.0.0.0,这是由于容器内的IP的变化,我们不能使用localhost的127.0.0.1来进行调试。

    下一步我们需要重新安装容器,先停止,然后删除,最后再安装

    docker-compose stop
    docker-compose rm
    docker-compose up -d
    

    然后我们调用下面的命令查看parse-server启动的logs

    docker logs parse-server
    

    你会发现下面这一行

    Debugger listening on ws://0.0.0.0:9229/64a7d606-f353-4d42-b40f-f12019083e4b
    For help, see: https://nodejs.org/en/docs/inspector
    

    也就是Debugger已经开启。

    接下来我们通过VSCode来进行调试


    添加配置.png

    如图,点击最左侧的bug图标跳转到调试主页面,然后添加配置。在弹出的下拉列表中选择node.js,选择添加node.js:添加到进程。此时VSCode会帮你生成一个launch.json文件。

    编辑文件如下:

    {
        // 使用 IntelliSense 了解相关属性。 
        // 悬停以查看现有属性的描述。
        // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
        "version": "0.2.0",
        "configurations": [
            {
              "name": "Attach to Parse Server Docker",
              "type": "node",
              "request": "attach",
              "port": 9229,
              "address": "localhost",
              "localRoot": "${workspaceFolder}/parse-server/cloud",
              "remoteRoot": "/parse-server/cloud",
              "protocol": "inspector",
            },
        ]
    }
    

    配置解析:

    • name:取一个容易
    • type:指定为node,不需要修改
    • request:指定为attach模式,不需要修改
    • port:指定为9229,不需要修改
    • address:为本地,因此用localhost,如果为远程,那么修改为远程服务器的地址
    • localRoot:本地的源码位置,由于我们只需要调试cloud的代码,因此指定cloud目录即可
    • remoteRoot:注意remoteRoot和localRoot必须指定相同的代码,一般是localRoot映射到服务器的目录。
    • protocol:指定为inspector,无需修改。

    这里address,localRoot,remoteRoot必须设置正确,否则可能会出现“断点未绑定”之类的错误。

    接下来我们打开本地的main.js源文件,在第二行设置一个断点。然后点击绿三角开始调试,此时会出现一个调试条

    截屏2022-10-16 17.24.13.png

    在命令行执行

    curl -X POST \
      -H "X-Parse-Application-Id: APPLICATION_ID" \
      -H "Content-Type: application/json" \
      http://localhost:1337/parse/functions/HelloCloud
    

    该执行并不会输出结果,VSCode会显示程序在断点处暂停,此时你可以进行调试了。

    截屏2022-10-16 17.26.53.png

    至此,我们的调试环境配置完毕,今后如果书写了复杂的Cloud Code,我们就可以进行最为直观的调试了。

    相关文章

      网友评论

          本文标题:配置Parse Server Cloud Code的调试环境

          本文链接:https://www.haomeiwen.com/subject/cdblartx.html