node.js如何引用其它js文件
以Java来说,比如要实现第三方存储,我可能需要导入对应的库,以maven为例,使用腾讯云或者七牛云、阿里云,我需要导入对应的maven依赖。
再比如,有些时候我们封装某个类,而那个类不在该包下,我们需要导包(就是指定那个类的路径,如果路径不对,则可能出现找不到这个类之类的错误,通常对应的IDE会提示错误)。
其实,node.js也是这样的。最近在开发node.js的时候,难免也会遇到需要引入其它js文件。今天我以一个简单示例来说一说node.js如何引用其它js文件。
test01.js
function hello(){
console.log("hello");
}
function hello2(){
console.log("hello2");
}
module.exports = {hello,hello2}
test02.js
var test01 = require( "./test01" ); test01.hello(); test01.hello2();
通过命令行运行node test02.js 正常会分别输出hello、hello2。
require是什么意思呢?
其实就跟我们Java开发导包一样的意思,在Java中是import,其实node.js也可以import式导包。
那么node.js中的require和import导包有什么区别呢?
(1)require导包位置任意,而import导包必须在文件的最开始;
(2)遵循的规范不同,require/exports是CommonJS的一部分,而import/export是ES6的规范;
(3)出现时间不同,CommonJS作为node.js的规范,一直沿用至今,主要是因为npm善CommonJS的类库众多,以及CommonJS和ES6之间的差异,Node.js无法直接兼容ES6。所以现阶段require/exports仍然是必要且必须的;
(4)形式不同,require/exports的用法只有以下三种简单写法:
const fs = require('fs');
— — — — — — — — — — — — — —
exports.fs = fs;
module.exports = fs;
而import/exports的写法就多种多样
import fs from 'fs';
import {default as fs} from 'fs';
import * as fs from 'fs';
import {readFile} from 'fs';
import {readFile as read} from 'fs';
import fs, {readFile} from 'fs';
— — — — — — — — — — — — — — — — — — — —
export default fs;
export const fs;
export function readFile;
export {readFile, read};
export * from 'fs';
(5)本质上不同,主要体现:
a.CommonJS还是ES6 Module 输出都可以看成是一个具备多个属性或者方法的对象;
b.default是ES6 Module所独有的关键字,export default fs 输出默认的接口对象,import fs from ‘fs’可直接导入这个对象;
c.ES6 Module 中导入模块的属性或者方法是强绑定的,包括基础类型,而CommonJS则普通的值传递或者引用传递;
本文参考链接如下所示:
node.js如何引用其它js文件:https://www.cnblogs.com/wuotto/p/9640312.html
关于require/import的区别:https://www.jianshu.com/p/fd39e16feb60
node.js如何引用其它js文件的更多相关文章
- Nodejs学习笔记(八)--- Node.js + Express 实现上传文件功能(felixge/node-formidable)
目录 前言 formidable简介 创建项目并安装formidable 实现上传功能 运行结果 部分疑惑解析 写在之后 前言 前面讲了一个构建网站的示例,这次在此基础上再说说web的常规功能---- ...
- Nodejs学习笔记(八)—Node.js + Express 实现上传文件功能(felixge/node-formidable)
前言 前面讲了一个构建网站的示例,这次在此基础上再说说web的常规功能----文件上传,示例以一个上传图片的功能为例子 上传功能命名用formidable实现,示例很简单! PS:最近比较忙,距上一次 ...
- JS引用另外JS文件的顺序问题。
1.在a.js中可以引用b.js文件,这样就可以在网页中只引用a.js文件,从而可以使用a.js和b.js文件中的所有方法. 引用格式如下:document.write('<script typ ...
- node.js使用express框架进行文件上传
关于node.js使用express框架进行文件上传,主要来自于最近对Settings-Sync插件做的研究.目前的研究算是取得的比较好的进展.Settings-Sync中通过快捷键上传文件,其实主要 ...
- ASP.NET中母版页引用外部js或css文件无效,提示对象未定义解决方法
最近做网站用了一个js+css实现的带有二级菜单的导航条,在母版页创建好后,子页面调用出现了许多奇怪的问题,多方查证后的最终解决方案和大家分享下.... 1.路径问题 如果是一个单独的aspx页面调用 ...
- 从零开始开发一个vue组件打包并发布到npm (把vue组件打包成一个可以直接引用的js文件)
自己写的组件 有的也挺好的,为了方便以后用自己再用或者给别人用,把组件打包发布到npm是最好不过了,本次打包支持 支持正常的组件调用方式,也支持Vue.use, 也可以直接引用打包好的js文件, 配合 ...
- 在 Node.js 中处理大 JSON 文件
在 Node.js 中处理大 JSON 文件 场景描述 问题一: 假设现在有一个场景,有一个大的 JSON 文件,需要读取每一条数据经过处理之后输出到一个文件或生成报表数据,怎么能够流式的每次读取一条 ...
- javascript 多线程Web Worker不引用外部js文件的方法
最近在Android开发中 Webview通过调用JavascriptInterface的方式与App交互 在交互的过程中,有些App上的操作时间会比较长,Web中调用的话会造成程序假死的情况 于是想 ...
- js文件中引用其他js文件
这一个功能的作用是做自己的js包时,可以通过引入一个整体的js文件而引入其他js. 只需要在总体的js加上这一句话 document.write("<script type='text ...
随机推荐
- js 格式化数字(每三位加逗号)
// 方法一 unction toThousands(num) { var result = [ ], counter = 0; num = (num || 0).toString().split(' ...
- Vue2+VueRouter2+webpack 构建项目实战(三):配置路由,运行页面
制作.vue模板文件 通过前面的两篇博文的学习,我们已经建立好了一个项目.问题是,我们还没有开始制作页面.下面,我们要来做页面了. 我们还是利用 http://cnodejs.org/api 这里公开 ...
- 【读书笔记】iOS-更改编辑器键的绑定
一,Xcode-->Preferences--->Key Bindings. 参考资料:<Xcode实战开发>
- 一次断电引发的svn数据库故障
作者:朱金灿 来源:http://blog.csdn.net/clever101 昨天办公室停电了.然后今天更新svn数据库时出现一个不能读取文件:End of file found的错误,具体如下图 ...
- Javascript 对象 - 数组对象
JavaScript核心对象 数组对象Array 字符串对象String 日期对象Date 数学对象Math 数组对象 数组对象是用来在单一的变量名中存储一系列的值.数组是在编程语言中经常使用的一种数 ...
- Jump Flood Algorithms for Centroidal Voronoi Tessellation
Brief Implemented both CPU and GPU version, you could consider this as the basic playground to imple ...
- SAP生产机该不该开放Debuger权限
前段时间公司定制系统在调用SAP RFC接口的时候报错了,看错误消息一时半会儿也不知道是哪里参数数据错误,就想着进到SAP系统里面对这个接口做远程Debuger,跟踪一下参数变量的变化,结果发现根本就 ...
- 资深程序员整理出来的Python面试题
转载链接:https://www.cnblogs.com/fcxwz/p/9225791.html
- spring4笔记----PropertyPlaceholderConfigurer 属性占位符配置器
driverClassName=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/spring username=root password= ...
- [20190322]测试相同语句遇到导致cursor pin S的疑问.txt
[20190322]测试相同语句遇到导致cursor pin S的疑问.txt--//昨天测试遇到的情况,链接:http://blog.itpub.net/267265/viewspace-26388 ...