我正在编写一个React web应用程序,并希望将用户的文件保存到GCP。首先,我在后端服务器(express(上获取文件,检查大小和MIME类型,然后我想将这些文件保存到GCP。我阅读文档并在代码中进行同样的处理。但我有一个错误"ReferenceError:require未定义"有人经历过那个问题吗?
node -v 13.13.0
npm -v 6.14.4
express -v 4.17.1
错误消息:
[nodemon] starting `node --experimental-modules --es-module-specifier-resolution=node server.js`
node | (node:84) ExperimentalWarning: The ESM module loader is experimental.
node | file:///usr/src/meow/routes/master.js:11
node | const { Storage } = require('@google-cloud/storage');
node | ^
node |
node | ReferenceError: require is not defined
node | at file:///usr/src/meow/routes/master.js:11:21
node | at ModuleJob.run (internal/modules/esm/module_job.js:110:37)
node | at async Loader.import (internal/modules/esm/loader.js:179:24)
node | [nodemon] app crashed - waiting for file changes before starting...
我的代码
const { Storage } = require('@google-cloud/storage');
const storage = new Storage(
{ keyFilename: "../config/GCP_key.json" }
);
我发现了问题!promlem使用ECMAScript模块。我重构代码:将常量XXX=require(XXX(上的所有'import XXX从"XXX"更改为删除package.json中的类型:"module"删除nodemon statup命令中的"--实验模块">