RequireJS:“express”和“cors”的脚本错误,但不知道如何修复它

Posted

技术标签:

【中文标题】RequireJS:“express”和“cors”的脚本错误,但不知道如何修复它【英文标题】:RequireJS: Script Error for "express" and "cors", but not sure how to fix it 【发布时间】:2021-08-14 05:34:57 【问题描述】:

堆栈跟踪: 需要.js:5 (makeError) require.js:5 (onScriptError)

我是使用 RequireJS 的新手,在花了几个小时后不知道如何解决这个问题。任何帮助或建议将不胜感激。这是我涉及 require 的代码:

require.config(
        nodeRequire: require
    );

    require(['express', 'cors'],
        function (express, cors) 
            const app = express()

            app.options('*', cors())

            app.get('/with-cors', cors(), (req, res, next) => 
                res.set('Content-type', 'application/json');
                res.send(params);
            )
        );

【问题讨论】:

请提供尽可能多的详细信息。首先,我们需要来自开发者工具控制台的准确错误 您是否尝试在浏览器中运行此代码?因为,如果是这样,您将无法在浏览器中运行 express 和 cors。那些在 nodejs 服务器上运行。 【参考方案1】:

看起来需要更多上下文,但根据您包含的内容,您似乎正在用 requirejs 的 require 覆盖节点的 require,即:

var require = require('requirejs');

当然,这是基于您调用 require.config 并将 require 传递为 nodeRequire 的事实。

基于example documented here,看起来这应该可以解决问题:

var requirejs = require('requirejs');

requirejs.config(
    nodeRequire: require // Note that this is passing in node's require
                         // not requirejs's require
);

requirejs(['express', 'cors'],
    function(express, cors) 
        ...
    
);

【讨论】:

以上是关于RequireJS:“express”和“cors”的脚本错误,但不知道如何修复它的主要内容,如果未能解决你的问题,请参考以下文章

在 Express/Node 应用程序中比较/实现 `app.use(cors(corsOptions));` 和 `app.options('*', cors(corsOptions));`

在使用 node.js 和 Express 构建的 api 中使用 cors 中间件时出现 CORS 错误

无法使用 PUT 方法通过 CORS 和 Express 发送数据

React/Node/Express 和 google OAuth 的 CORS/CORB 问题

为啥我的 Express.js 后端的 CORS 设置不起作用?

在 CORS 调用后,Express Session 不会持续存在