语法错误:导入 axios 时不能在模块外使用 import 语句

时间:2021-06-02 08:28:56

标签: node.js express axios

在我的 node.js (express.js) 项目中,我尝试包装 axios 以创建这样的 HttpClient:

import axios from 'axios';

const httpClient = axios.create({ baseURL: 'http://locahost:3003' });

...

export const httpClient = {
       ...
  };

当我运行它时,我收到错误 SyntaxError: Cannot use import statement outside a module,它抱怨行 import axios from 'axios'。我怎样才能摆脱这个错误? (我来自 React-native 世界,我在 React-Native 中用过同样的东西,很好)

1 个答案:

答案 0 :(得分:1)

问题是默认 express 使用 CJS 格式的导入,正如您可能已经看到的 const axios = require("axios")

您尝试做的是一种 ESM 格式的导入,JS 无法将其理解为本机格式。要使用 import 语句,您可以将以下属性添加到 package.json 文件 - "type": "module" 或者您可以使用“.mjs”扩展名而不是默认的“.js”扩展名。 >

希望这 link 有助于进一步。