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 ...
随机推荐
- loj#6033. 「雅礼集训 2017 Day2」棋盘游戏(二分图博弈)
题意 链接 Sol 第一次做在二分图上博弈的题..感觉思路真是清奇.. 首先将图黑白染色. 对于某个点,若它一定在最大匹配上,那么Bob必胜.因为Bob可以一直沿着匹配边都,Alice只能走非匹配边. ...
- AOJ1370: Hidden Anagrams(hash)
题意 题目链接 Sol 直接对出现的次数hash即可,复杂度\(O(26n^2)\) 一开始没判长度条件疯狂wa #include<bits/stdc++.h> //#define int ...
- python地理处理包——geopy使用之地理编码与反地理编码
由于专业需要,经常接触一些地理处理的工具包,文档都是英文的,自己看的同时将其翻译一下,一方面自己学习的同时有个记录,要是能同时给一起的学习的童鞋们一些帮助,想想也是极好的.以下的文档内容主要翻译自官方 ...
- java排序算法之希尔排序
希尔排序是冲破二次时间屏障的第一批算法之一. 它是通过比较相距一定间隔的元素来工作,各趟比较所用的距离随着算法的进行而减小,直到最后一趟(比较相邻元素)为止.因此希尔排序也叫缩减增量排序. 希尔排序使 ...
- Pycharm基本设置和插件安装
Pycharm调节主题和字体 调节主题:File - Setting - Editor - Color Scheme - 选择个人喜欢的风格 调节字体大小,感觉默认字体有点小,对我这样的老人家,至少要 ...
- 章节七、5-Maps
一.向map集合中添加元素 map.put package ZangJie7; import java.util.HashMap; import java.util.Map; public class ...
- 整理一些.net core中的错误代码
在hosting .net core时,有些错误代码并不容易理解. 作为标记,方便查询,这些错误代码可能不会出现在VS的错误查找工具里,也不会出现在错误代码转字符描述的函数里. COR_E_AMBIG ...
- python 饥饿的小易(网易笔试题)
本周早些时候,学弟给我发了一道网易的笔试题,饥饿的小易,感觉有点意思-分享给大家 题目描述: 小易总是感觉饥饿,所以作为章鱼的小易经常出去寻找贝壳吃.最开始小易在一个初始位置x_0.对于小易所处的当前 ...
- python之restful api(flask)获取数据
需要用到谷歌浏览器的扩展程序 Advanced Rest Client进行模拟请求 1.直接上代码 from flask import Flask from flask import request ...
- A problem has been detected and windows has been shut down to prevent damage to your computer.他么啥意思?看这里!【蓝屏】
A problem has been detected and windows has been shut down to prevent damage to your computer. 检测到问 ...