1.ECMAScript、源码JavaScript、源码NodeJs,源码它们的源码区别是什么?
2.JavaScript和Nodejs有什么不同?
3.ecmascript、javascript、源码nodejs,源码伟哥网站源码它们的区别是什么?
4.javascriptånodejsçåºå«ï¼
5.nodejsç¼è¯ï¼
ECMAScript、JavaScript、源码NodeJs,源码它们的源码区别是什么?
在编程世界中,有三种与JavaScript相关的源码技术:ECMAScript(简称ES)、浏览器端的源码JavaScript和Node.js。ES本质上是源码一个语言标准,定义了基础语法,源码飞镖系统源码如循环、源码判断、源码变量和数组等,它独立于执行环境,无论是在浏览器、服务器还是客户端,都能顺利运行。
JavaScript作为ES在浏览器中的应用,它融合了ECMAScript标准和Web API,包括DOM操作、window对象、事件处理和定时器等功能,ep销售源码这些额外的功能使得JavaScript在浏览器环境中实现了丰富的网页交互和动态效果。
而Node.js则是ES在服务器端的应用,它同样基于ES标准,但与浏览器环境不同的是,Node.js利用的是Node.js API,这些API提供了服务器端的文件系统操作、网络通信等特性,使得JavaScript可以用于构建高效、异步的服务器端应用。
总结来说,虽然JavaScript和Node.js都基于ECMAScript,但它们各自扩展了不同的照妖镜源码下载API,分别适用于浏览器和服务器环境,但底层的编程语法保持一致,都是ES标准的体现。
JavaScript和Nodejs有什么不同?
JavaScript与Node.js在Web开发领域的角色与应用存在显著差异。Node.js是一个跨平台、后端、开源JavaScript运行时环境,基于Chrome的V8引擎,允许在Web浏览器之外执行JS代码。Node.js适合初学者,广泛应用于MERN、MEVN和MEAN等Web开发堆栈。concurrent hashmap源码JavaScript是一种高级编程或脚本语言,与HTML和CSS一起,是万维网的基础技术之一。JavaScript通过添加交互组件,使网页更动态和以用户为中心。Node.js与JavaScript的区别主要在于技术类型、应用范围、支持的引擎以及操作系统访问。JavaScript作为脚本语言,可在任何安装了JavaScript引擎的浏览器中运行,而Node.js是后端JavaScript运行环境,需要与之兼容的库。JavaScript主要用于客户端操作,如表单验证或简单的Ajax请求,而Node.js则用于执行非阻塞操作系统任务。JavaScript可在多种引擎上运行,如Safari的JavaScript Core、Firefox的Spider Monkey和Google Chrome的V8,而Node.js仅支持V8引擎,但编写的代码可在任何环境中运行。JavaScript提供对各种操作系统的访问,但特定于操作系统,而Node.js精通与文件系统的绑定,允许读写磁盘,且非阻塞任务不受特定于操作系统的约束。总结,JavaScript与Node.js在Web开发中的角色不同,JavaScript侧重于前端,而Node.js侧重于后端,尽管JavaScript更受欢迎,Node.js提供用于构建高度可扩展服务器端应用程序的异步环境。
ecmascript、javascript、nodejs,它们的区别是什么?
ECMAScript、JavaScript与Node.js是三个在Web开发和服务器端处理中经常被提及的术语。它们各自扮演着不同的角色,分别定义了编程语言的标准、实现及运行环境。
ECMAScript,全称为ECMA-,是一种脚本语言的国际标准,它定义了JavaScript和其他类似语言的语法和行为。ECMAScript的目标是为各种编程语言提供统一、一致的脚本语言标准,使得开发者可以在不同环境中使用相同的语言规则编写代码。
JavaScript则是ECMAScript的一种实现。它主要被用于网页的动态内容生成和交互,是现代Web开发的核心技术之一。通过JavaScript,开发者可以实现在网页上实时更新内容、响应用户操作等功能,极大地丰富了Web应用的用户体验。
Node.js则是基于JavaScript的一种运行环境。它将JavaScript执行环境从浏览器扩展到了服务器端,允许开发者使用JavaScript编写服务器端应用。Node.js通过引入事件驱动和非阻塞I/O模型,使得JavaScript能够高效地处理并发请求,适用于构建高性能、高可扩展性的Web应用和服务。
综上所述,ECMAScript是脚本语言的标准,JavaScript是遵循ECMAScript标准的一种实现语言,而Node.js则是利用JavaScript实现的一种服务器端运行环境。它们各自的功能和应用场景不同,但都与JavaScript密切相关,共同推动了现代Web技术的发展。
javascriptånodejsçåºå«ï¼
node.jså¹²åçåJavaScriptå¥åºå«
1ãä½æ¯ï¼node.js主è¦ä»äºåå°æä½ï¼javascript主è¦æä½HTMLçå ç´ (å端)ã
2ãnode.jsåjavascriptä»æ¬è´¨ä¸æ¥è¯´æ²¡æä»ä¹åºå«ï¼è¯è¨æ¯ä¸æ ·çï¼é½æ¯javascriptè¯è¨ç¼åãä½æ¯ï¼node.js主è¦ä»äºåå°æä½ï¼javascript主è¦æä½HTMLçå ç´ (å端)ã
3ãnode.jsæ¯ä¸ä¸ªè¿è¡å¨chromeJavascriptè¿è¡ç¯å¢ä¸ï¼ä¿ç§°GoogleV8å¼æï¼çå¼åå¹³å°ï¼ç¨æ¥æ¹ä¾¿å¿«æ·çå建æå¡å¨ç«¯ç½ç»åºç¨ç¨åºãä½ å¯ä»¥æå®ç解为ä¸ä¸ªè½»é级çJSPæPHPç¯å¢ï¼ä½æ¯ç¨æ¥å¼åWebåºç¨çè¯ï¼ææ¶è¦ä¾¿æ·å¾å¤ã
4ãNode.jsæ¯ä¸ä¸ªåºäºChromeV8å¼æçJavaScriptè¿è¡ç¯å¢ãNode.js使ç¨äºä¸ä¸ªäºä»¶é©±å¨ãéé»å¡å¼I/Oç模åã
5ãNode.jsæ¯ä¸ä¸ªåºäºChromeV8å¼æçJavaScriptè¿è¡æ¶ãNode.jsæ¯ä¸ä¸ªåºäºChromeV8å¼æçJavaScriptè¿è¡ç¯å¢ãNode.js使ç¨äºä¸ä¸ªäºä»¶é©±å¨ãéé»å¡å¼I/Oç模åã
JSON,JS,NODEJSä¸è çå ³ç³»æ¯ææ ·?nodejsæ¯jsçä¸ç§è¿è¡ç¯å¢ï¼jsonæ¯ç®åææµè¡çæ°æ®äº¤æ¢æ ¼å¼ï¼jsçä¼å¿å¨äºå¯ä»¥ç´æ¥å°json转æ¢æjs对象ï¼æ以å¦æåå°ç¨nodejså¼åï¼å¯¹jsonçå¤çå°é常æ¹ä¾¿ã
JSæ¯ä¸ç§èæ¬è¯è¨ï¼ä½ æè°ç对象ï¼å ¶å®è¿åªæ¯å¤å¨æºç é¶æ®µï¼å½è¿æ®µç¬¦åè¯æ³çææ¬è¢«èæ¬å¼æ解éä¹åï¼å¨å åä¸æä¼äº§ç对象ï¼è³äºæ¯å¦ç¬¦åè¯æ³ï¼åå³äºèæ¬å¼æã
Nodejsèªèº«æä¾äºåºæ¬ç模åï¼ä½æ¯å¼åå®é åºç¨è¿ç¨ä¸ä» ä» ä¾é è¿äºåºæ¬æ¨¡ååè¿éè¦è¾å¤çå·¥ä½ã幸è¿çæ¯ï¼Nodejsåºåæ¡æ¶ä¸ºæ们æä¾äºå¸®å©ï¼è®©æ们åå°å·¥ä½éã
npmå½ä»¤ç¨æ¥å®è£ nodejsç模åãpackage.jsonå®ä¹äºéè¦å®è£ åªäºä¾èµï¼å¨package.jsonæå¨çç®å½ä¸æ§è¡npminstallï¼å®è£ ä¾èµæ¨¡åå¨è¿ä¸ªç®å½çnode_modulesæ件夹ä¸ã
unity3dä¸çjavascriptåNODEJSä¸çjavascriptæä»ä¹åºå«å
node.jsåjavascriptä»æ¬è´¨ä¸æ¥è¯´æ²¡æä»ä¹åºå«ï¼è¯è¨æ¯ä¸æ ·çï¼é½æ¯javascriptè¯è¨ç¼åãä½æ¯ï¼node.js主è¦ä»äºåå°æä½ï¼javascript主è¦æä½HTMLçå ç´ (å端)ã
Unityjséé¢è¿æä¾äºèæå½æ°ãç±»ç继æ¿ä¹æ¯ä¸åçãå¨JavaScriptåC#ä¸ï¼æ¹æ³æ¯éå并ä¸ä¸å¯éè½½ï¼é¤éæ¹æ³å£°æä¸æ·»å èæå ³é®åãä¸åçæ¯C#åªéè½½é£äºå å«éè½½å ³é®åoverrideçæ¹æ³ã
Unity3Dä¸çMath对象å«åMathfï¼JSçæ§è½æ¯å·®ä¸å¤ç.xä»å ¥é¨å°ç²¾éãä¸unity称Cãå¨å®æ¹ææãunity4ï¼éå çã
javascriptæ¯ç¼ç¨è¯è¨ï¼nodejsæ¯åºäºè°·æçv8å¼æç¼åçè½ç¨äºè§£æjavascriptçç¯å¢ï¼ç¸å½äºjavascriptä¸ä» å¯ä»¥å¨æµè§å¨ç«¯è¿è¡ï¼ä¹å¯ä»¥å¨nodejsç¨åºä¸è¿è¡reactjsæ¯reactæ¡æ¶çåºï¼å°±æ¯åºäºjavascriptçå°è£ çæ¡æ¶ã
nodejsç¼è¯ï¼
nodejsç¼è¯åjsæ件ååç¼
Node.jsæ¯ä¸ä¸ªåºäºChromeV8å¼æçJavaScriptè¿è¡ç¯å¢ã
Nodeä¸javaScriptçåºå«å¨äºï¼javaScriptç顶å±å¯¹è±¡æ¯window,ènodeæ¯global
//è¿é使ç¨çvar声æçåéä¸æ¯å ¨å±çï¼æ¯å½å模åä¸çï¼ç¨global声æç表示æ¯å ¨å±ç
vars=;
global.s=;
//è¿é访é®å°çsæ¯varçå½ç
console.log(s);//
//è¿é访é®å°çææ¯å ¨å±åé
console.log(global.s);//
模åï¼å¨nodeä¸ï¼æ件å模åæ¯ä¸ä¸å¯¹åºçï¼ä¹å°±æ¯ä¸ä¸ªæ件就æ¯ä¸ä¸ªæ¨¡åï¼æ¯ä¸ªæ¨¡åé½æèªå·±çä½ç¨åï¼æ们éè¿varç³æçåé并éå ¨å±èæ¯è¯¥æ¨¡åä½ç¨åä¸çã
ï¼2ï¼module模å
1ãæ件æ¥æ¾
1ï¼é¦å æç §å è½½ç模åçæ件å称è¿è¡æ¥æ¾ï¼å¦æ没ææ¾å°ï¼åä¼å¸¦ä¸.jsã.jsonæ.nodeæå±åå¨å è½½
2ï¼ä»¥'/'为åç¼ç模åæ¯æ件çç»å¯¹è·¯å¾ãä¾å¦ï¼require('/home/marco/foo.js')ä¼å è½½/home/marco/foo.jsæ件ã
3ï¼ä»¥'./'为åç¼ç模åæ¯ç¸å¯¹äºè°ç¨require()çæ件çãä¹å°±æ¯è¯´ï¼circle.jså¿ é¡»åfoo.jså¨åä¸ç®å½ä¸ä»¥ä¾¿äºrequire('./circle')æ¾å°å®ã
4ï¼å½æ²¡æ以'/'ã'./'æ'../'å¼å¤´æ¥è¡¨ç¤ºæ件æ¶ï¼è¿ä¸ªæ¨¡åå¿ é¡»æ¯ä¸ä¸ªæ ¸å¿æ¨¡åæå è½½èªnode_modulesç®å½ã
5ï¼å¦æç»å®çè·¯å¾ä¸åå¨ï¼årequire()ä¼æåºä¸ä¸ªcodeå±æ§ä¸º'MODULE_NOT_FOUND'çErrorã
2ãmoduleä½ç¨å
å¨ä¸ä¸ªæ¨¡åä¸éè¿varå®ä¹çåéï¼å ¶ä½ç¨åèå´æ¯å½å模åï¼å¤é¨ä¸è½å¤ç´æ¥ç访é®ï¼å¦ææ们æ³ä¸ä¸ªæ¨¡åè½å¤è®¿é®å¦å¤ä¸ä¸ªæ¨¡åä¸å®ä¹çåéï¼å¯ä»¥æä¸ä¸ä¸¤ç§æ¹å¼ï¼
1ï¼æåéä½ä¸ºglobal对象çä¸ä¸ªå±æ§ï¼ä½è¿æ ·çåæ³æ¯ä¸æ¨èç
2ï¼ä½¿ç¨æ¨¡å对象moduleãmoduleä¿åæä¾åå½å模åæå ³çä¸äºä¿¡æ¯ã
å¨è¿ä¸ªmodule对象ä¸æä¸ä¸ªå对象exports对象ï¼æ们å¯ä»¥éè¿è¿ä¸ªå¯¹è±¡æä¸ä¸ªæ¨¡åä¸çå±é¨åé对象è¿è¡æä¾è®¿é®ã
//è¿ä¸ªæ¹æ³çè¿åå¼ï¼å ¶å®å°±æ¯è¢«å 载模åä¸çmodule.exports
require('./.js');
3ã__dirnameï¼å½å模åçç®å½åã
ä¾åï¼å¨/Users/mjrç®å½ä¸è¿è¡nodeexample.jsï¼
console.log(__dirname);
//è¾åº:/Users/mjr
console.log(path.dirname(__filename));
//è¾åº:/Users/mjr
4ã__filenameï¼å½å模åçæ件åï¼å¤çåçç»å¯¹è·¯å¾ï¼ãå½å模åçç®å½åå¯ä»¥ä½¿ç¨__dirnameè·åã
å¨/Users/mjrç®å½ä¸è¿è¡nodeexample.jsï¼
console.log(__filename);
//è¾åº:/Users/mjr/example.js
console.log(__dirname);
//è¾åº:/Users/mjr
ï¼3ï¼processï¼è¿ç¨ï¼
process对象æ¯ä¸ä¸ªå ¨å±åéï¼æä¾Node.jsè¿ç¨çæå ³ä¿¡æ¯ä»¥åæ§å¶è¿ç¨ãå 为æ¯å ¨å±åéï¼æ以æ é使ç¨require()ã
1ãprocess.argv
è¿åè¿ç¨å¯å¨æ¶çå½ä»¤è¡åæ°ã第ä¸ä¸ªå ç´ æ¯process.execPathã第äºä¸ªå ç´ æ¯å½åæ§è¡çJavaScriptæ件çè·¯å¾ãå©ä½çå ç´ é½æ¯é¢å¤çå½ä»¤è¡åæ°ã
console.log(process.argv);
æå°ç»æï¼
2ãprocess.execPathè¿åå¯å¨è¿ç¨çå¯æ§è¡æ件çç»å¯¹è·¯å¾ã
3ãprocess.envè¿åç¨æ·çç¯å¢ä¿¡æ¯ã
å¨process.envä¸å¯ä»¥æ°å¢å±æ§ï¼
process.env.foo='bar';
console.log(process.env.foo);
å¯ä»¥éè¿deleteå é¤å±æ§ï¼
deleteprocess.env.foo;
console.log(process.env);
å¨Windowsä¸ï¼ç¯å¢åéä¸åºå大å°å
4ãprocess.pidå±æ§è¿åè¿ç¨çPIDã
5ãprocess.platformå±æ§è¿åå符串ï¼æ è¯Node.jsè¿ç¨è¿è¡å ¶ä¸çæä½ç³»ç»å¹³å°ã
6ãprocess.titleå±æ§ç¨äºè·åæ设置å½åè¿ç¨å¨pså½ä»¤ä¸æ¾ç¤ºçè¿ç¨åå
7ãprocess.uptime()æ¹æ³è¿åå½åNode.jsè¿ç¨è¿è¡æ¶é´ç§é¿
注æ:该è¿åå¼å å«ç§çåæ°ã使ç¨Math.floor()æ¥å¾å°æ´ç§éã
8ãprocess.versionså±æ§è¿åä¸ä¸ªå¯¹è±¡ï¼æ¤å¯¹è±¡ååºäºNode.jsåå ¶ä¾èµççæ¬ä¿¡æ¯ã
process.versions.modules表æäºå½åABIçæ¬ï¼æ¤çæ¬ä¼éçä¸ä¸ªC++APIååèå¢å ãNode.jsä¼æç»å 载模åï¼å¦æè¿äºæ¨¡å使ç¨ä¸ä¸ªä¸åABIçæ¬ç模åè¿è¡ç¼è¯ã
9ãprocess对象-è¾å ¥è¾åºæµ
vara;
varb;
process.stdout.write('请è¾å ¥açå¼:');
process.stdin.on('data',(chunk)={
if(!a){
a=Number(chunk);
process.stdout.write('请è¾å ¥bçå¼:');
}else{
b=Number(chunk);
process.stdout.write('a+bçå¼:'+(a+b));
process.exit();
}
});
ï¼4ï¼Bufferç¼å²å¨
Bufferç±»ï¼ä¸ä¸ªç¨äºæ´å¥½çæä½äºè¿å¶æ°æ®çç±»ï¼æ们å¨æä½æ件æè ç½ç»æ°æ®çæ¶åï¼å ¶å®æä½çå°±æ¯äºè¿å¶æ°æ®æµï¼Node为æ们æä¾äºä¸ä¸ªæ´å æ¹ä¾¿çå»æä½è¿ç§æ°æ®æµçç±»Buffer,ä»æ¯ä¸ä¸ªå ¨å±çç±»
1ãå¦ä½å建使ç¨buffer
Buffer.from(array)è¿åä¸ä¸ªBufferï¼å å«ä¼ å ¥çåèæ°ç»çæ·è´ã
Buffer.from(arrayBuffer[,byteOffset[,length]])è¿åä¸ä¸ªBufferï¼ä¸ä¼ å ¥çArrayBufferå ±äº«å åã
Buffer.from(buffer)è¿åä¸ä¸ªBufferï¼å å«ä¼ å ¥çBufferçå 容çæ·è´ã
Buffer.from(string[,encoding])è¿åä¸ä¸ªBufferï¼å å«ä¼ å ¥çå符串çæ·è´ã
Buffer.alloc(size[,fill[,encoding]])è¿åä¸ä¸ªæå®å¤§å°ä¸å·²åå§åçBufferã该æ¹æ³æ¯Buffer.allocUnsafe(size)æ ¢ï¼ä½è½ç¡®ä¿æ°å建çBufferä¸ä¼å å«æ§æ°æ®ã
Buffer.allocUnsafe(size)ä¸Buffer.allocUnsafeSlow(size)è¿åä¸ä¸ªæå®å¤§å°ä½æªåå§åçBufferãå 为Bufferæ¯æªåå§åçï¼å¯è½å å«æ§æ°æ®ã
//å建ä¸ä¸ªé¿åº¦ä¸ºãä¸ç¨å¡«å çBufferã
constbuf1=Buffer.alloc(,1);
//å建ä¸ä¸ªé¿åº¦ä¸ºãä¸æªåå§åçBufferã
//è¿ä¸ªæ¹æ³æ¯è°ç¨Buffer.alloc()æ´å¿«ï¼ä½è¿åçBufferå®ä¾å¯è½å å«æ§æ°æ®ï¼å æ¤éè¦ä½¿ç¨fill()æwrite()éåã
constbuf2=Buffer.allocUnsafe();
constbuf3=Buffer.from([1,2,3]);
constbuf4=Buffer.from('tést');
console.log(buf1);//Buffer
console.log(buf2);//Buffer
console.log(buf3);//Buffer
console.log(buf4);//Bufferc3a
2ãBuffer对象æä¾çtoStringãJSONç使ç¨
1ï¼buf.toString(encodingï¼startï¼end)
varbf=Buffer.from('miaov');
console.log(bf.toString('utf-8',1,4));//iaov
console.log(bf.toString('utf-8',0,5));//miaov
console.log(bf.toString('utf-8',0,6));//miaov
2ï¼buf.write(stringï¼offsetï¼lengthï¼encoding)
stringè¦åå ¥bufçå符串ã
offsetå¼å§åå ¥çå移éãé»è®¤0ï¼è¿éæçæ¯buffer对象çèµ·å§è¦åå ¥çä½ç½®ã
lengthè¦åå ¥çåèæ°ãé»è®¤ä¸ºbuf.length-offsetã
encodingstringçå符ç¼ç ãé»è®¤ä¸º'utf8'ã
è¿å:å·²åå ¥çåèæ°ã
varstr="miaovhello";
varbf=Buffer.from(str);
varbf2=Buffer.alloc(8);
//ä»0å¼å§åå ¥5个
bf2.write(str,0,5);
console.log(bf);
console.log(bf2);
3ï¼buf.toJSON()
constbuf=Buffer.from([0x1,0x2,0x3,0x4,0x5]);
constjson=JSON.stringify(buf);
console.log(json);
//è¾åº:{ "type":"Buffer","data":[1,2,3,4,5]}
3ãBufferä¸éææ¹æ³ç使ç¨
1ï¼Buffer.isEncoding(encoding)ï¼å¤ææ¯å¦æ¯Bufferæ¯æçå符ç¼ç ï¼æ¯åè¿åtrueï¼ä¸æ¯åè¿åfalse
console.log(Buffer.isEncoding('utf-8'));//true
2ï¼Buffer.isBuffer(obj)ï¼å¦æobjæ¯ä¸ä¸ªBufferï¼åè¿åtrueï¼å¦åè¿åfalseã
ï¼5ï¼fsï¼æ件系ç»ï¼
该模åæ¯æ ¸å¿æ¨¡åï¼éè¦ä½¿ç¨require('fs')å¯¼å ¥å使ç¨ï¼è¯¥æ¨¡å主è¦ç¨æ¥æä½æ件
1ãfs.open(path,flags,mode,callback)
pathï¼è¦æå¼çæ件çè·¯å¾ï¼
flagsï¼æå¼æ件çæ¹å¼è¯»/åï¼
modeï¼è®¾ç½®æ件ç模å¼è¯»/å/æ§è¡
callback(errï¼fd)ï¼æ件æå¼ä»¥åï¼å¨åè°å½æ°ä¸åç¸åºçå¤ç,åè°å½æ°ç两个åæ°ï¼
errï¼æ件æå¼å¤±è´¥çé误ä¿åå¨erréé¢ï¼å¦ææåerr为null
fdï¼è¢«æå¼æ件çæ è¯
varfs=require('fs');
fs.open('./test.txt','r',function(err,fd){
if(err){
console.log("æ件æå¼å¤±è´¥");
}else{
console.log("æ件æå¼æå");
}
});
2ãfs.openSync(path,flags,mode)ï¼è¿åæ件æ述符ã
varfs=require('fs');
console.log(fs.openSync('./test.txt','r'));//3
3ãfs.read(fd,buffer,offset,length,position,callback)
ä»fdæå®çæ件ä¸è¯»åæ°æ®ï¼
bufferæå®è¦åå ¥æ°æ®çbufferï¼
offsetæå®bufferä¸å¼å§åå ¥çå移éï¼
lengthæå®è¦è¯»åçåèæ°ï¼
positionæå®æ件ä¸å¼å§è¯»åçå移éãå¦æposition为nullï¼åä»æ件çå½åä½ç½®å¼å§è¯»åï¼
callbackæä¸ä¸ªåæ°(err,bytesRead,buffer)
示ä¾ï¼test.txtä¸çå¼ä¸º
fs.open('./test.txt','r',function(err,fd){
if(!err){
varbf=Buffer.alloc(5);
fs.read(fd,bf,0,5,0,function(){
console.log(bf.toString());//
})
}
});
4ãfs.write(fd,buffer,offset,length,position,callback)
å°bufferåå ¥å°fdæå®çæ件ã
offsetæå®bufferä¸è¦å¼å§è¢«åå ¥çå移éï¼lengthæå®è¦åå ¥çåèæ°ã
positionæå®æ件ä¸è¦å¼å§åå ¥çå移éãå¦ætypeofposition!=='number'ï¼åä»å½åä½ç½®å¼å§åå ¥ã
callbackæä¸ä¸ªåæ°(err,bytesWritten,buffer)ï¼å ¶ä¸bytesWrittenæå®bufferä¸å·²åå ¥æ件çåèæ°ã
varfs=require('fs');
fs.open('./test.txt','r+',function(err,fd){
if(!err){
varbf=Buffer.alloc(5);
fs.read(fd,bf,0,5,0,function(){
console.log(bf.toString());//
});
varbf=Buffer.from('testæ°æ®');
fs.write(fd,bf,0,,0);
fs.write(fd,'æµè¯æ°æ®2',,'utf-8');
}
});
fs.write(fd,string,position,encoding,callback)
å°stringåå ¥å°fdæå®çæ件ãå¦æstringä¸æ¯ä¸ä¸ªå符串ï¼åä¼å¼ºå¶è½¬æ¢æå符串ã
positionæå®æ件ä¸è¦å¼å§åå ¥çå移éãå¦ætypeofposition!=='number'ï¼åä»å½åä½ç½®å¼å§åå ¥ã
encodingæå®å符串çç¼ç ã
callbackæä¸ä¸ªåæ°(err,written,string)ï¼å ¶ä¸writtenæå®å符串ä¸å·²åå ¥æ件çåèæ°ãåå ¥çåèæ°ä¸å符串çå符æ°æ¯ä¸åçã
5ãfs.exists(path,callback)æ£æ¥æå®è·¯å¾çæ件æè ç®å½æ¯å¦åå¨
fs.appendFile(path,data,callback)ï¼å°æ°æ®è¿½å å°æ件ï¼å¦ææ件ä¸åå¨åå建æ件ã
//æ£æ¥æ件æ¯å¦åå¨
varfs=require('fs');
varfilename='./test2.txt';
fs.exists(filename,function(isExists){
if(!isExists){
fs.writeFile(filename,'miaov',function(err){
if(err){
console.log("æ件å建失败");
}else{
console.log("æ件å建æå");
}
});
}else{
fs.appendFile(filename,'-leo',function(err){
if(err){
console.log("æ件å 容追å 失败");
}else{
console.log("æ件å 容追å æå");
}
})
}
});
ï¼6ï¼å端项ç®èªå¨åæ建
1ãå建myProject项ç®æ件以å对åºçæ件夹
varprojectData={
'name':'myProject',
'fileData':[
{
'name':'css',
'type':'dir'
},{
'name':'js',
'type':'dir'
},{
'name':'images',
'type':'dir'
},{
'name':'index.html',
'type':'file',
'content':'html\n\thead\n\t\ttitletitle/title\n\t/head\n\tbody\n\t\th1Hello/h1\n\t/body\n/html'
}
]
};
varfs=require('fs');
if(projectData.name){
//å建项ç®æ件夹
fs.mkdirSync(projectData.name);
varfileData=projectData.fileData;
if(fileDatafileData.length){
fileData.forEach(function(file){
//æ件ææ件夹路å¾
file.path='./'+projectData.name+'/'+file.name;
//æ ¹æ®typeç±»åå建æ件ææ件夹
file.content=file.content||'';
switch(file.type){
case'dir':
fs.mkdirSync(file.path);
break;
case'file':
fs.writeFileSync(file.path,file.content);
break;
default:
break;
}
});
}
}
2ãèªå¨æå å¤ä¸ªæ件
varfs=require('fs');
varfiledir='./myProject/dist';
fs.exists(filedir,function(isExists){
if(!isExists){
fs.mkdirSync(filedir);
}
fs.watch(filedir,function(ev,file){
//åªè¦æä¸ä¸ªæ件åçäºååï¼æ们就éè¦å¯¹æ件夹ä¸çæææ件è¿è¡è¯»åãå并
fs.readdir(filedir,function(err,dataList){
vararr=[];
dataList.forEach(function(file){
if(file){
//statSyncæ¥çæ件å±æ§
varinfo=fs.statSync(filedir+'/'+file);
//modeæ件æé
if(info.mode===){
arr.push(filedir+'/'+file);
}
}
});
//读åæ°ç»ä¸çæ件å 容
varcontent='';
arr.forEach(function(file){
varc=fs.readFileSync(file);
content+=c.toString()+'\n';
});
//å并æ件ä¸çå 容
fs.writeFileSync('./myProject/js/index.js',content);
})
});
});
ï¼7ï¼ä½¿ç¨nodeè¿è¡webå¼å
1ãæ建ä¸ä¸ªingMessageçä¸ä¸ªå®ä¾ï¼è·å请æ±çä¸äºä¿¡æ¯ï¼å¦å¤´ä¿¡æ¯ï¼æ°æ®ç
htt