android系统定制开发运行node app.js 错误:Uncaught ReferenceError: require is not defined

问题描述:

android系统定制开发刚开始使用 Node.js。在我的app/js文件中,android系统定制开发我正在做这样的事情:

应用程序.js

  1. var http = require('http');
  2. http.createServer(function (request, response) {
  3. response.writeHead(200, {'Content-Type': 'text/plain'});
  4. response.end('Am I really running a server?!');
  5. }).listen(8080, '127.0.0.1');
  6. console.log('running server!');

android系统定制开发当我在终端运行node app.js时,控制台会吐出'running server!',但在我的浏览器中,我得到Uncaught ReferenceError: require is not defined.

有人可以向我解释为什么在终端中它可以正常工作,但在浏览器中却不能吗?

我正在使用节点http-server来服务我的页面。

解决思路一:

从版本 14 开始,这现在也可以在 Node.js 中发生。

当您将包类型声明为package.json. 如果这样做,某些 变量将无法使用,包括require.

要解决此问题,"type": "module"请从您的package.json文件中删除并确保您没有任何以.mjs.


若遇到问题的解决参考:

  • 项目文件夹中的任何内容都可能发生这种情况。因此,如果您有一个不相关的构建脚本,它是用CommonJSimport 编写的,但带有project.jsonwith "type": "module",那么构建脚本将会中断,即使它没有在package.json.

  • 您仍然可以使用createRequire在模块中使用 require 

  • 我正在使用 ,所以我从节点 14 切换到节点 10,并且此错误已修复。 

  • 您还可以将文件扩展名重命名为.cjs 

  • "type": "module"使用 Node 14,从 package.json 结果中取出(node:7396) Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs。我没有任何 .mjs

  • 这样你就不能用了import。

解决思路二:

在终端中,您正在运行节点应用程序并且它正在运行您的脚本。这是一个与直接在浏览器中运行脚本截然不同的执行环境。虽然 Javascript 语言大致相同(如果您运行的是 Chrome 浏览器,则两者都是 V8),但其他执行环境(例如可用的库)并不相同。

node.js 是一个服务端 Javascript 执行环境,它结合了 V8 Javascript 引擎和一堆服务端库。 require()是 node.js 添加到环境中的一项功能。因此,当您在终端中运行 node 时,您正在运行一个包含require().

require()不是内置在浏览器中的功能。这是 node.js 的特定功能,而不是浏览器的特定功能。因此,当您尝试让浏览器运行您的脚本时,它没有require().

有一些方法可以在浏览器中运行某些形式的 node.js 代码(但不是全部)。例如,您可以获得require()类似(尽管不完全相同)工作的浏览器替代品。

但是,您不会在浏览器中运行 Web 服务器,因为这不是浏览器能够执行的操作。

您可能对browserify感兴趣,它允许您在浏览器中使用require()语句使用节点样式模块。

解决思路三:

正如 Abel 所说,默认情况下Node >= 14中的 ES 模块不再具有require

如果要添加它,请将以下代码放在文件顶部:

以上仅为部分解决思路介绍,查看全部内容,请添加公众号后回复001,即可查看。

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发