用babel-node逐步调试express服务器

时间:2016-12-12 09:21:04

标签: node.js express ecmascript-6 babeljs

我希望能够逐步完成我的快速服务器逻辑,但我无法这样做。

我使用的是nodeJS版本v6.2和babel-node版本v6.9

这是我想要介绍的一些代码:

app.get("/instagram", (req, res) => {
    const instagramEndpoint = "https://api.instagram.com/v1/users/self/media/recent/?access_token=";
    const limit = 16;
    const user = "testuser";
    const keys = require('./keys.json');
    const accessToken = keys.instagram.accessToken;
    console.log('HIT instagram API');
    fetch(instagramEndpoint + accessToken[user])
        .then(res => {
            if (res.status !== 200) {
                log.error('Instagram API status is not 2XX');
                log.error('Status: ' + res.status);
                return {};
            }
            console.log('request to instagram API successful');
            debugger;
            return res;
        })
        .catch(err => {
            log.error('Instagram API error: ' + err);
            return {};
        });
});

这些是我尝试的命令及其输出:

$ babel-node --debug-brk --inspect server/server.js 
$ babel-node --debug-brk server/server.js 

这两个命令都在终端中有我这个:

enter image description here

$ babel-node --inspect --presets babel-preset-es2015 -- server/server.js
$ babel-node --debug --presets babel-preset-es2015 --inspect -- server/server.js  --debug
$ babel-node --debug --presets babel-preset-es2015 --inspect -- server/server.js

这些命令给了我很多这个。 --debug Debugger listening on port 5858被添加到输出的顶部。我不确定我的代码是否已达到debugger

enter image description here

当我转到localhost:5858时,浏览器中唯一的输出是

Type: connect
V8-Version: 5.0.71.47
Protocol-Version: 1
Embedding-Host: node v6.2.0
Content-Length: 0

我做错了什么?我无法单步执行express服务器

1 个答案:

答案 0 :(得分:1)

问题是你需要使用新的附加模式,因为在启动调试过程之前,代码将首先由babel-node转换。

node_modules/babel-cli/bin/babel-node.js --debug --presets es2015 -- <app_entry_point> --debug

命令运行后,您应该看到端口9229正在侦听

enter image description here

我正在撰写有关如何在VSCode中调试ES6的指南,您可以访问here了解更多详情