zoukankan      html  css  js  c++  java
  • Node.js

    ###  node.js是什么?

    node.js是一个开发平台(Java开发平台、.NET开发平台、PHP开发平台、Apple开发平台)。有自己对应的编程语言、语言运行时、实现特定功能的API(SDK:Software Development Kit)。

    编程语言:JavaScript

    语言运行时:基于Chrome V8 JavaScript引擎构建

    a)开发控制台程序(命令行程序、CLI程序)

    b)桌面运行程序(GUI):借助node-webkit、electron等

    c)Web应用程序:网站

    ###  node.js全栈开发技术栈:EMAN

    a)M:MongoDB(数据库)

    b)E:Express(Web开发框架)

    c)A:Angular(前台)

    d)N:node.js(后端)

    ###  node.js网站

    a)官方网站:https://nodejs.org/en/

    b)中文网站:http://nodejs.cn/

    c)中文社区:https://cnodejs.org/

    ###  学习目标

    a)了解服务器开发过程

    b)会使用node.js开发基本的 http 服务程序(web应用程序)

    ###  node.js安装与配置

    下载:进入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在任何环境下都可以启动。

    ###  node.js开发Web应用程序和PHP、Java、ASP.NET等传统模式开发Web应用程序的区别

    ***传统模式***

    有Web容器

    ***node.js开发web应用程序***

    没有web容器-->本身就是一个http服务器,本身就可以创建一个http服务器。

     

    Web容器,即Web服务器,作用就是监听用户请求,根据不同请求做不同的处理。

    ###  REPL介绍

    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 键。 

    ###  JavaScript命名规则

    不要用中文

    不要包含空格

    不要出现node关键字

    建议以“_”分割关键字

    ###  node.js模块

    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 });

    ***文件读取***

     1 /*************执行文件读取操作******************/
     2 // //1.加载fs模块
     3  var fs=require('fs');
     4 
     5 //2.调用fs.readFile()函数
     6 /*
     7     fs.readFile(file[,option],callback);
     8     file:待读取的文件;
     9     option:可选参数,用于指定读取文件时读取的编码;
    10     callback:回调函数,针对此处回调函数的讲解看具体代码;
    11 */
    12 
    13 fs.readFile("测试.txt",function(err,data){
    14     /*
    15         function(err,data){}
    16         err:错误对象,具体讲解见fs.writeFile();
    17         data:读取的文件中的数据。data参数的数据类型是一个Buffer对象,里面保存的是一个一个的
    18              字节(理解为字节数组),在文本文件的读取中,最后需要将Buffer对象转换为字符串对象,
    19              使用data.toString([option])方法。
    20              option:用以指定以什么编码格式转换data对象,默认是 utf8 ,此处可以不写,建议写上。
    21              如果fs.readFile()中的option写上了,此处的data.toString()可以不写。
    22     */
    23     if(err){
    24         throw err;
    25     }
    26     // console.log(data.toString());
    27     console.log(data.toString("utf8"));
    28     //注意:读取.txt格式时候可能会乱码。
    29 });

    ***注意:文件读取中存在的问题***

    代码如下:

    1 //读写文件的路径问题
    2 var fs=require("fs");
    3 
    4 fs.readFile('./hello.txt','utf8',function(err,data){
    5     if(err){
    6         throw err;
    7     }
    8     console.log(data);
    9 })

    此处的运行结果:

    原因如下:

    1、  在 node.js 环境配置好以后,在命令行窗口中,不论哪个磁盘都可以运行;

    2、  在读文件的时候,此处用的是相对路径 “./”;

    3、  但是在命令行窗口中,“./”相对的是执行 node 命令的路径;

    4、  在3中,“./”并不是相对于正在执行的这个js文件的路径,相对的是磁盘的路径;

    (即相对于C:UsersAdministrator,而不是相对于当前JS文件位置。)

  • 相关阅读:
    [引]Windows Server 2003 : 服务器群集
    周国平:(爱情)永远未完成
    企业管理常用缩写术语之中英文对照表(含解释)
    微软相关中文网站
    陈安之:NAC神经链调正术
    学会不要再争吵
    Oracle基础学习四:字符串 数字 日期 等 相关函数
    贪多嚼不烂
    frameset 框架传值点滴
    陈安之成功的十个关键
  • 原文地址:https://www.cnblogs.com/WangYujie1994/p/10823820.html
Copyright © 2011-2022 走看看