报错
import axios from './lib/axios.js';
SyntaxError: Unexpected identifier
标错不是在import,而是在import后面的axios下面,显示的文件路径是依赖文件里的。
我使用node -v,看服务器里的版本是v16.16.0
这样试试
const axios = require('./lib/axios.js');
从错误信息来看,这个问题可能是因为在 Node.js 的版本 v16 中,不再支持在 CommonJS 模块中使用 import/export 语法。在 Node.js 的 v16 中,仅支持在 ES 模块中使用 import/export 语法。
解决方案是将项目的文件从使用 import/export 改为使用 CommonJS 的 require/exports 语法,因为 Express 和 Node.js 默认支持 CommonJS 模块。
首先,确保您已经安装了 axios,可以使用 npm 或者 yarn 来安装:
使用 npm:
npm install axios
使用 yarn:
yarn add axios
然后,将使用 import/export 语法的文件修改为 CommonJS 的 require/exports 语法。例如,如果您在 ./lib/axios.js
文件中使用了 import/export 语法,应该修改为:
// ./lib/axios.js
const axios = require('axios');
module.exports = axios;
接着,在您的 Express+Node 项目的其他文件中,使用 require 来导入 axios:
const axios = require('./lib/axios.js');
// 使用axios进行请求等操作
这样修改后,应该能够避免出现 SyntaxError: Unexpected identifier
错误,并且您的项目可以在 Node.js v16 中正常运行。请确保在修改后重启您的项目,以便更改生效。