当前位置: 首页 > 面试题库 >

要求没有定义?Node.js

李耀
2023-03-14
问题内容

刚开始使用Node.js。在我的app/js文件中,我正在执行以下操作:

app.js

var http = require('http');

http.createServer(function (request, response) {
  response.writeHead(200, {'Content-Type': 'text/plain'});
  response.end('Am I really running a server?!');
}).listen(8080, '127.0.0.1');

console.log('running server!');

当我在终端中运行时node app.js,控制台会弹出'running server!',但在浏览器中却显示Uncaught ReferenceError: require is not defined

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

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


问题答案:

在终端中,您正在运行节点应用程序,并且正在运行脚本。与直接在浏览器中运行脚本相比,这是一个非常不同的执行环境。尽管Javascript语言基本相同(如果您运行的是Chrome浏览器,则均为V8),但其余执行环境(例如可用的库)则不同。

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

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

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

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

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



 类似资料:
  • 为泛型定义要求 如类型约束中描述的一样, 类型约束允许你在泛型函数或泛型类型相关的类型形式参数上定义要求. 类型约束在为关联类型定义要求时也很有用.通过定义一个泛型Where子句来实现. 泛型Where子句让你能够要求一个关联类型必须遵循指定的协议, 或者指定的类型形式参数和关联类型必须相同. 泛型Where子句以Where关键字开头, 后面关联类型的约束或类型和关联类型一致的关系. 泛型Wher

  • 我正在创建一个应用程序,使用Node、Express、ejs和multer上传图像。每次我提交表格时。文件未定义。我花了一整天的时间来排除故障,但却不知道自己做错了什么。 超文本标记语言 app.js

  • 我不知道我做错了什么,因为我对另一个程序使用了同样的方法,它完美地工作了... 提前致谢

  • 请问,凌空是否会自动将我的GET参数添加到URL?对我来说,它不起作用,所以在查找源代码时,我只是找不到任何对getParams方法的调用。。那么我应该自己建立URL吗?这一点都没有问题,我只是想,当有像getParams这样的方法时,它可以为我做到这一点:) 更新:下面是我的代码。。 实际上,params参数现在是冗余的

  • 我正在通过NestJS API中的仅HTTP cookie传递身份验证令牌。 因此,在为我的Authendpoint编写一些E2E测试时,我遇到了一个问题,即cookie没有达到我的预期。 下面是我的精简测试代码: 在我的JWT策略中,我使用一个定制的cookie解析器。我遇到的问题是请求。当cookie到达解析器时,它总是未定义的。但是,cookie将出现在请求中。标题。 我遵循这篇媒体文章中的

  • 有一些相关的问题,比如: null 我的存储库 我错过了什么?