SyntaxError:带有axios的意外标识符

zer*_*ing 5 javascript node.js axios

我正在尝试使用axios,如下所示:

import axios from 'axios';

axios.post("http://localhost:3000/test", {"prop1": "value"}, {headers: {'X-Custom-Header': 'foobar'}})
Run Code Online (Sandbox Code Playgroud)

然后编译器抱怨:

/home/developer/Desktop/reason/interoperate/src/Ax.js:1
(function (exports, require, module, __filename, __dirname) { import axios from 'axios';
                                                                     ^^^^^

SyntaxError: Unexpected identifier
    at new Script (vm.js:74:7)
    at createScript (vm.js:246:10)
    at Object.runInThisContext (vm.js:298:10)
    at Module._compile (internal/modules/cjs/loader.js:670:28)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
    at Module.load (internal/modules/cjs/loader.js:612:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
    at Function.Module._load (internal/modules/cjs/loader.js:543:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:744:10)
    at startup (internal/bootstrap/node.js:238:19)
developer@monad:~/Desktop/reason/interoperate/src$ node Ax.js
/home/developer/Desktop/reason/interoperate/src/Ax.js:1
(function (exports, require, module, __filename, __dirname) { import axios from 'axios';  
Run Code Online (Sandbox Code Playgroud)

我输入错误的路径吗?

Tsv*_*nev 7

Node.js尚不完全支持ES模块,这意味着您不能使用import关键字。您现在可以将其与Babel和Webpack之类的源代码编译器一起使用,但这需要一个构建步骤。

编辑:公平地说,Node.js 10.4.0 对ES模块提供了实验性支持,其背后是一个标志:--experimental-modules。这还需要.mjs为您的JS文件使用文件扩展名。

该功能当前标记为“ 稳定性”:1-实验 - 在生产环境中不建议使用该功能。