热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

node.jsrequire和ES6导入导出的区别

node.jsrequire和ES6导入导出的区别原

node . js require 和 ES6 导入导出的区别

原文:https://www . geesforgeks . org/node-js-require-and-es6-import-export/之间的差异

Node.js 遵循 commonJS 模块系统,它要求包含存在于单独文件中的模块,为此,它有像【require】【ES6 导入和导出】这样的方法在 node.js 中可用。

Require: 它是内置函数,包含独立文件中存在的模块是最简单的方法。require 的基本功能是读取一个 Javascript 文件,执行该文件,然后返回导出对象。它不仅允许您添加内置的核心节点模块,还允许您在所需的程序中添加基于社区的模块(node_modules)和本地模块。像–HTTP 模块URL 模块查询字符串模块路径模块等节点中有各种内置模块。

语法:


  • The built-in modules are as follows:

    js
    const express = require('express');


  • Include local modules as follows. For example, you need the "abc" module, but do not specify the path.

    js
    require('abc');


示例:节点将依次在 module.paths 指定的所有路径中查找


  • 输入:

    js
    require('abc');


  • 输出:


    • 如果节点找不到:

      js
      Error: Cannot find module 'abc'
          at Function.Module._resolveFilename (module.js:470:15)
          at Function.Module._load (module.js:418:25)
          at Module.require (module.js:498:17)
          at require (internal/module.js:20:19)
          at repl:1:1
          at ContextifyScript.Script.runInThisContext (vm.js:23:33)
          at REPLServer.defaultEval (repl.js:336:29)
          at bound (domain.js:280:14)
          at REPLServer.runBound [as eval] (domain.js:293:12)
          at REPLServer.onLine (repl.js:533:10)


    • 如果节点找到它:

      js
      // It is the content of the file
      Geeksforgeeks example for require




ES6 导入&导出:此语句用于引用一个专家系统模块。其他文件类型不能用这些语句导入。它们仅在 ES 模块中被允许,并且该语句的说明符可以是 URL 样式的相对路径或包名。

Export 语句允许用户将其创建的对象和方法导出到其他程序。例如,如果您分配了一个字符串文字,那么它会将该字符串文字公开为一个模块。

语法:


  • Used to import files.

    js
    // Importing submodule from
    // 'es-module-package/private-module.js';
    import './private-module.js';


  • Used to export files.

    js
    module.exports = 'A Computer Science Portal';


示例:创建两个 JS 文件一个用于导入,另一个用于导出,或者您可以使用任何模块进行导入,这样就不需要导出一个。


  • 导出文件名Message.js

    js
    // Exporting module
    module.exports = 'Hello Geek';

    导入文件名Display.js

    ```js
    // Importing module
    var msg = import('./Message.js');
    console.log(msg);


  • Output:

    Hello Geek
    ```

    node . js require 和 ES6 导入导出的区别:虽然 require 函数和 ES6 导入导出有很多共同点,在代码上看起来执行相同的功能,但是在很多方面是不同的。T32】T33

    | 需要 | ES6 导入和导出 |
    | REQUIRE is non-lexical, it stays where they have put the file. | Import is lexical, and it is sorted to the top of the file. |
    | It can be called anytime, anywhere in the program. | Can't be called conditionally, always run at the beginning of the file. |
    | You can run the code directly with the require statement. | To run a program containing import statements, you must use the experimental module feature flag. |
    | If you want to use the require module, you must use' Save File'. Js' extension. | If you want to use the import module, then you must use the save file. Mjs' extension. |

    注意:您必须注意,在您的节点程序中不能同时使用 require 和 import,更优选使用 require 而不是 import,因为您需要使用实验模块标志功能来运行 import 程序。


推荐阅读
  • vue使用
    关键词: ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • 本文介绍了如何使用Express App提供静态文件,同时提到了一些不需要使用的文件,如package.json和/.ssh/known_hosts,并解释了为什么app.get('*')无法捕获所有请求以及为什么app.use(express.static(__dirname))可能会提供不需要的文件。 ... [详细]
  • VueCLI多页分目录打包的步骤记录
    本文介绍了使用VueCLI进行多页分目录打包的步骤,包括页面目录结构、安装依赖、获取Vue CLI需要的多页对象等内容。同时还提供了自定义不同模块页面标题的方法。 ... [详细]
  • 从零基础到精通的前台学习路线
    随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
  • Node.js学习笔记(一)package.json及cnpm
    本文介绍了Node.js中包的概念,以及如何使用包来统一管理具有相互依赖关系的模块。同时还介绍了NPM(Node Package Manager)的基本介绍和使用方法,以及如何通过NPM下载第三方模块。 ... [详细]
  • 本文讨论了在使用PHP cURL发送POST请求时,请求体在node.js中没有定义的问题。作者尝试了多种解决方案,但仍然无法解决该问题。同时提供了当前PHP代码示例。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • PHP中的单例模式与静态变量的区别及使用方法
    本文介绍了PHP中的单例模式与静态变量的区别及使用方法。在PHP中,静态变量的存活周期仅仅是每次PHP的会话周期,与Java、C++不同。静态变量在PHP中的作用域仅限于当前文件内,在函数或类中可以传递变量。本文还通过示例代码解释了静态变量在函数和类中的使用方法,并说明了静态变量的生命周期与结构体的生命周期相关联。同时,本文还介绍了静态变量在类中的使用方法,并通过示例代码展示了如何在类中使用静态变量。 ... [详细]
  • 本文总结了在开发中使用gulp时的一些技巧,包括如何使用gulp.dest自动创建目录、如何使用gulp.src复制具名路径的文件以及保留文件夹路径的方法等。同时介绍了使用base选项和通配符来保留文件夹路径的技巧,并提到了解决带文件夹的复制问题的方法,即使用gulp-flatten插件。 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • 本文介绍了Sencha Touch的学习使用心得,主要包括搭建项目框架的过程。作者强调了使用MVC模式的重要性,并提供了一个干净的引用示例。文章还介绍了Index.html页面的作用,以及如何通过链接样式表来改变全局风格。 ... [详细]
  • 前言:原本纠结于Web模板,选了Handlebars。后来发现页面都是弱逻辑的,不支持复杂逻辑表达式。几乎要放弃之际,想起了Javascript中ev ... [详细]
  • 前言:原本纠结于Web 模板,选了Handlebars。后来发现页面都是弱逻辑的,不支持复杂逻辑表达式。几乎要放弃之际,想起了Javascript中eval函数。虽然eval函 ... [详细]
author-avatar
凯米宝贝青岛Pacific早教中心
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有