node.js是一个开发平台(Java开发平台、.NET开发平台、PHP开发平台、Apple开发平台)。有自己对应的编程语言、语言运行时、实现特定功能的API(SDK:Software Development Kit)。
编程语言:JavaScript
语言运行时:基于Chrome V8 JavaScript引擎构建
a)开发控制台程序(命令行程序、CLI程序)
b)桌面运行程序(GUI):借助node-webkit、electron等
c)Web应用程序:网站
a)M:MongoDB(数据库)
b)E:Express(Web开发框架)
c)A:Angular(前台)
d)N:node.js(后端)
a)官方网站:https://nodejs.org/en/
b)中文网站:http://nodejs.cn/
c)中文社区:https://cnodejs.org/
a)了解服务器开发过程
b)会使用node.js开发基本的 http 服务程序(web应用程序)
下载:进入node.js官方网站,点击 download ,进入node.js下载页面,选择与操作系统对应的node.js,点击下载,对下载软件傻瓜式安装,安装完成后,配置环境变量。
a)LTS版本:Long-Term Support版本,长期支持版,即稳定版。
b)Current版本:Latest Feature版本,最新版本,新特性会在该版本中最先加入。
因为本人操作系统是Windows 64位故选择如下:
注意:
a)安装完成后,通过 “管理员方式”打开命令窗口,输入‘node -v’来确定安装成功与否,如果出现node.js版本号,说明安装成功。
b)最好配置环境变量,让node.js在任何环境下都可以启动。
***传统模式***
有Web容器
***node.js开发web应用程序***
没有web容器-->本身就是一个http服务器,本身就可以创建一个http服务器。
Web容器,即Web服务器,作用就是监听用户请求,根据不同请求做不同的处理。
1、REPL全城:Read-Eval-Print-Loop(交互式解释器)
a)R:读取,读取用户输入,解析输入的JavaScript数据结构并存储在内存中;
b)E:执行,执行输入的数据结构;
c)P:打印,输出结果;
d)L:循环,循环操作以上步骤,直至用户两次按下Ctril-C按钮退出。
2、在REPL中编写程序(类似于浏览器开发人员工具中的控制台功能)
直接在命令窗口中输入 node 命令进入 REPL 环境中。
3、按两次Ctril+c 退出REPL界面,或者输入 .exit 退出 REPL界面。
+按住Ctril键不放开,按两下 C 键。
不要用中文
不要包含空格
不要出现node关键字
建议以“_”分割关键字
Node.js的 API 通过node.js的模块使用。部分模块使用时可以直接使用,部分模块使用时需要通过require()函数来加载该模块。
例如:
Process模块在使用的时候无需通过require()函数来加载该模块,可以直接使用;
Fs模块在使用时必须通过require()函数加载。 1 var fs=require( ‘fs’ );
原因:
process模块是全局模块,fs模块是非全局模块,全局模块可以直接使用,而非全局模块需要先通过require()函数先加载,再使用。全局模块可以在官网上查询。
JS在浏览器端不能进行文件操作,因为浏览器不提供文件操作的API。
但是Node.js提供了文件操作的API,可以通过JS直接调用。
使用到的模块:var fs=require ( ‘ fs ‘ );
1 /*************执行文件写入操作******************/ 2 //1.加载文件操作模块-fs模块 3 var fs=require("fs"); 4 5 //2.实现文件写入操作 6 var msg="hello world"; 7 //调用fs.writeFile()进行文件写入 8 /* 9 fs.writeFile(file,data[,option],callback) 10 file:文件路径 11 data:两种数据类型,string/Buffer.表示要向文件中写入的数据,Buffer就是一个字节数组,像音频、视频、字符串和各种文件等,最终都是以字节形式存储在计算机中。 12 option:可选项,表示写入文件的编码,默认为“utf-8” 13 callback:回调函数。node.js是事件驱动的。当文件操作完毕以后,就会触发一个写文件操作完毕事件,当写文件完毕后,会回调该函数。当回调该函数时,说明写文件操作结束了。 14 */ 15 16 fs.writeFile("测试.txt", str, function(err){ 17 /* 18 err:回调函数中只有这样一个参数,就是错误对象,如果文件写入成功,就没有错误,没有错误,err里面就是null, 19 如果文件写入失败了,err里面肯定不是null,而是一个错误对象。 20 即: 21 如果err====null,表示写入文件成功,没有错误! 22 如果err不是null,表示写入文件失败 23 */ 24 if(err){ 25 console.log("写文件出错了,具体错误:"+err); 26 }else{ 27 console.log("成功!"); 28 } 29 });
原文:https://www.cnblogs.com/WangYujie1994/p/10823820.html