我已经用openapi-express-server
生成了一个服务器,但是我需要将它转换为ES6,因为我将使用一些不再支持CommonJS的库,所以我不能对它们使用require。我生成了一个基本服务器来测试重构,但我一直从resolver.js得到一个错误。我尝试过express-openapi-validator v3、v4和v5。
服务器正确加载,但当调用API时,我得到错误:
require() of ES Module /controllers/InfoController.js from /node_modules/express-openapi-validator/dist/resolvers.js not supported.\nInstead change the require of InfoController.js in /node_modules/express-openapi-validator/dist/resolvers.js to a dynamic import() which is available in all CommonJS modules."
这是给出错误的控制器,但如果使用所有其他控制器,也会抛出错误。该错误不会出现在服务器启动时,而是出现在对REST端点的第一次API调用时(在本例中为info/version
)
// InfoController.js
import Controller from './Controller.js';
import service from '../services/InfoService.js';
const version = async (request, response) => {
await Controller.handleRequest(request, response, service.version);
};
export default {
version,
};
似乎openapi-validator库中的resolver.js不喜欢es6模块。我能做些什么来解决这个问题?
使用openapi-express-server Generator生成服务器,并将文件转换为ES6标准。我希望API能够正常工作。
1条答案
按热度按时间2nbm6dog1#
我也遇到了同样的问题。您可以通过定义自己的解析程序来解决此问题。您可以找到example here。