node.js初步

Node.js介绍


  • Node.js 诞生于2009年,Node.js采用C++语言编写而成,是 一个Javascript的运行环境。Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境 ,让JavaScript的运行脱离浏览器端,可以使用JavaScript语言 书写服务器端代码。

安装Node.js

? Node.js官网下载稳定版本,node偶数版本为稳定版本,奇数版本为非稳定版本。

  • mac 直接安装 或者 brew来安装
  • 安装完Node.js会自动安装NPM(Node Package Manager):包管理工具;
  • 通过指令 node -v 来查看是否安装完成和查看node版本号;npm -v 来查看npm版本。

使用Node.js实现第一个服务器

初步感受Node.js

//引入http模块
let http = require("http");
//创建一个服务器
let serve = http.createServer((req,res)=>{
    console.log("hello");
    res.end("hello world");
})
//设置端口号
serve.listen(3000);
  • Google Chrome 默认非安全端口列表,尽量避免以下端口。

    1, // tcpmux
    7, // echo
    9, // discard
    11, // systat
    13, // daytime
    15, // netstat
    17, // qotd
    19, // chargen
    20, // ftp data
    21, // ftp access
    22, // ssh
    23, // telnet
    25, // smtp
    37, // time
    42, // name
    43, // nicname
    53, // domain
    77, // priv-rjs
    79, // finger
    87, // ttylink
    95, // supdup
    101, // hostriame
    102, // iso-tsap
    103, // gppitnp
    104, // acr-nema
    109, // pop2
    110, // pop3
    111, // sunrpc
    113, // auth
    115, // sftp
    117, // uucp-path
    119, // nntp
    123, // NTP
    135, // loc-srv /epmap
    139, // netbios
    143, // imap2
    179, // BGP
    389, // ldap
    465, // smtp+ssl
    512, // print / exec
    513, // login
    514, // shell
    515, // printer
    526, // tempo
    530, // courier
    531, // chat
    532, // netnews
    540, // uucp
    556, // remotefs
    563, // nntp+ssl
    587, // stmp?
    601, // ??
    636, // ldap+ssl
    993, // ldap+ssl
    995, // pop3+ssl
    2049, // nfs
    3659, // apple-sasl / PasswordServer
    4045, // lockd
    6000, // X11
    6665, // Alternate IRC [Apple addition]
    6666, // Alternate IRC [Apple addition]
    6667, // Standard IRC [Apple addition]
    6668, // Alternate IRC [Apple addition]

    6669, // Alternate IRC [Apple addition]

模块化

一、为什么会有模块化

  • 在JavaScript发展初期就是为了实现简单的页面交互逻辑,寥寥数语即,如今随着前端代码日益膨胀

    这时候JavaScript作为嵌入式的脚本语言的定位动摇了,JavaScript却没有为组织代码提供任何明显帮助,JavaScript极其简单的代码组织规范不足以驾驭如此庞大规模的代码;

二、Node.js中的模块化 commonjs规范

  • CommonJS就是为JS的表现来制定规范,因为js没有模块的功能所以CommonJS应运而生,它希望js可以在任何地方运行,不只是浏览器中。

    1、创建自定义模块

    • 引入一个文件?形式模块

      home.js执行文件

      //通过require来引入
      require("./aModule"); //注意一定要有"./",文件后缀可加可不加。

      amodule.js文件

      console.log("我是amodule模块111");
    • 引入文件夹形式模块
      • home.js执行文件
      require("./aModuledir"); //必须加"./"

      ? aModuleDir里的index.js文件,会自动查找文件夹下的index.js文件执行

      console.log("我是aModule模块文件夹");
      • 当然也可以配置默认启动文件,在文件夹内新建package.json来指定执行文件
      {
        "name":"aModule",
        "version":"1.0.0",
        "main":"test.js"
      }
  • 自定义模块的按需导出

    通过module.exports 导出; ___dirname , __filename

    module.exports = {
        a:"我是a的值",
        b(){
            console.log("我是导出的b函数");
        }
    }

    引入导出文件

    let mymodule = require("bModule");
    console.log(mymodule.a);
    mymodule.b();

    或者 通过 exports来导出

    exports.fn = function(){
        console.log("我是fn函数");
    }

    导入文件

    let myfn = require("bModule").fn;
    myfn();
    // 或者 通过解构赋值
    let { fn } = require("bModule");
    fn();
  • 模块加载的优先级 ,先文件再目录;

2、内置模块;

nodejs内置模块有:Buffer,C/C++Addons,Child Processes,Cluster,Console,Cr

ypto,Debugger,DNS,Domain,Errors,Events,File System,

Globals,HTTP,HTTPS,Modules,Net,OS,Path,Process,P unycode,Query Strings,Readline,REPL,Stream,String De coder,Timers,TLS/SSL,TTY,UDP/Datagram,URL, Utilities,V8,VM,ZLIB;内置模块不需要安装,外置模块需要安装;

npm包管理器

NPM(Node Package Manager) 官网的地址是 npm官网

  • npm常用指令;

    • npm init:引导创建一个package.json文件
    • npm help(npm -h) :查看npm帮助信息
    • npm version (npm -v) : 查看npm版本;
    • npm search:查找
    • npm install (npm i):安装 默认在当前目录,如果没有node_modules 会创建文件夹;
      • npm install module_name -S 或者--save 即 npm install module_name --save 写入dependencies
      • npm install module_name -D 或者 —save-dev 即 npm install module_name --save-dev 写入devDependencies
      • npm install module_name -g 全局安装(命令行使用)
      • 指定版本安装模块 npm i module_name @1.0 通过 "@"符号指定;
    • npm update(npm -up):更新
    • npm remove 或者 npm uninstall:删除
    • npm root 查看当前包安装的路径 或者通过 npm root -g 来查看全局安装路径;

fs模块

  • fs是文件操作模块,所有文件操作都是有同步和异步之分,特点是同步会加上 "Sync" 如:异步读取文件 "readFile",同步读取文件 "readFileSync";

    文件操作

    • 文件读取:

      • 异步读取
      let fs = require("fs");
      fs.readFile("1.txt",(err,data)=>{
          if(err){
              return console.log(err);
          }
          console.log(data.toString());
      })
      • 同步读取文件
      let fs = require("fs");
      let res = fs.readFileSync("1.txt");
      console.log(res.toString());
    • 文件写入:
      let fs = require("fs");
      //flag配置  "a":追加写入,"w":写入,"r":读取
      fs.writeFile("2.txt","我是要写入的内容",{flag:"w"},err=>{
          if(err){
              return console.log(err);
          }
          console.log("写入成功");
      })
    • 文件删除
      fs.unlink("2.txt",err=>{
          if(err){
              return console.log(err);
          }
          console.log("删除成功");
      })
    • 复制文件
      • 先读取文件再写入文件
      function mycopy(src,dest){
         fs.writeFileSync(dest,fs.readFileSync(src));
      }
      mycopy("1.txt","4.txt");
    • 修改文件名,目录也可以通过rename来操作
      fs.rename("1.txt","5.txt",function (err) {
          if(err){
              console.log(err);
          }else{
              console.log("修改成功");
          }
      });
    • 判断文件是否存在
      fs.exists("4.txt",function (exists) {
          console.log(exists);
      })

buffer缓冲区

  • buffer的创建

    • 直接创建
    • 数组创建
    • 字符串创建
    • 乱码的处理
    • buffer转换tostring

stream流

  • stream流:流与数据处理方面密不可分

    • 流的原理
    • 流数据的获取
      • pipe
      • data
      • end
    • copy的流方法实现
    • 加载视图的流方法实现

总结

  • nodejs的安装及使用
  • 服务端及客户端
  • commonjs模块化
  • fs模块的使用(文件操作及目录操作)
  • stream
  • buffer

原文地址:https://www.cnblogs.com/forcee/p/12301077.html

时间: 2024-10-14 09:23:07

node.js初步的相关文章

node.js初步了解(2)

1. windown下 npm 升级: npm install npm -g 2. Node.js事件驱动模型:设计模型--观察者模型. 3. node.js全局变量:global 4. node,js  express 框架 1 var express=require('express'); 2 var app=express(); 3 app.get('/',function(req,res){ 4 res.send('hello!'); 5 }); 6 7 app.listen(5000,

node.js初步了解(3)——慕课网(回调,作用域,上下文)

1. 1 //回调:回调是异步编程最基本的方法,node.js需要按顺序执行异步逻辑的时候,一般采用后续传递的方式,将后续逻辑封装在回调函数中,作为起始函数的参数. 2 //具名函数 3 function learn(something){ 4 console.log(something); 5 } 6 7 function we(callback,something){ 8 something+=' is cool'; 9 callback(something); 10 11 } 12 13

探秘Node.js(一)——Node.js简介及安装配置

1.Node.js 简介及特点: Node.js 是一个可以让 JavaScript 运行在服务器端的平台,它可以让JavaScript 脱离浏览器的束缚运行在一般的服务器环境下,就像运行 Python. Perl. PHP. Ruby 程序一样.我们可以用 Node.js 轻松地进行服务器端应用开发,Python. Perl. PHP. Ruby 能做的事 Node.js 几乎都能做,而且可以做得更好. Node.js 最大的特点就是采用异步式 I/O 与事件驱动的架构设计.对于高并发的解决方

node.js的初步见解

Node.js 是一个基于 Chrome JavaScript 运?时建立的平台, 用于方便地搭建响应速度快.易于扩展的?络应?.Node.js 使用事件驱动, 非阻塞 I/O 模型而得以轻量和?效,?常适合在分布式设备上运行的数据密集型的实时应用.V8 引擎执行 Javascript 的速度非常快,性能非常好.Node 是一个 Javascript 运行环境(runtime). 实际上它是对 Google V8 引擎进行了封装. Node 对一些特殊用例进行了优化, 提供了替代的 API,使得

node.js module初步理解,exports与module.exports的区别

在开发一个复杂的应用程序的时候,我们需要把各个功能拆分.封装到不同的文件,在需要的时候引用该文件.没人会写一个几万行代码的文件,这样在可读性.复用性和维护性上都很差,几乎所有的编程语言都有自己的模块组织方式,比如Java中的包.C#中的程序集等,node.js使用模块和包来组织,其机制实现参照了CommonJS标准,虽未完全遵守,但差距不大,使用起来非常简单. 在node.js中模块与文件是一一对应的,也就是说一个node.js文件就是一个模块,文件内容可能是我们封装好的一些JavaScript

初步了解Node.js,学做简单的留言本案例

在还没有正式的学Node.js的时候, 你们认为Node.js 对于前端来说是什么呢? 会认为Node.js 是框架? 认为这是类似Jquery的一个快速.简洁的JavaScript框架? 反正我自己起初是这么认为的,因为它后面有个 .js. 那么在正式开始接触Node.js的时候,才发现自己是有多么愚蠢.在进入了Node.js的官网后,看完对Node的介绍一后才发现 Node 和 Js 都好猛啊. 官方对Node.js就简单的一句话:(Node.js® is a JavaScript runt

Node.js机制及原理理解初步

一.node.js优缺点 node.js是单线程. 好处就是 1)简单 2)高性能,避免了频繁的线程切换开销 3)占用资源小,因为是单线程,在大负荷情况下,对内存占用仍然很低 3)线程安全,没有加锁.解锁.死锁这些问题 php node.js 坏处就是 如何解决高并发? node使用异步IO和事件驱动(回调函数)来解决这个问题. 一般来说,高并发解决方案会提供多线程模型,为每个业务逻辑提供一个线程,通过系统线程切换来来弥补同步I/O调用的时间开销.像apache,是一个请求一个线程. 而node

Node js之Express初步介绍和安装

摘要:Express就是一个基于node.js的框架.基于 Node.js 平台,快速.开放.极简的 web 开发框架基于node.js的框架有如下两个:express.koa,koa框架express的作者另外又开发的一个框架. 1.什么是Express? 基于Node.js平台,快速.开放.极简的web开发框架. 官网:http://www.expressjs.com.cn/ 首先要明确express的范围. Node.js可以进行两个方面的开发: 基于命令行的工具 Web开发 expres

cocos creator学习01 关于cocos creator 通过get 和post连接node.js服务器的初步探索

一.node.js的安装注意事项 1.参考http://www.runoob.com/nodejs/nodejs-install-setup.html 2.node.js如果不配置package.json文件会出现警告  npm WARN saveError ENOENT : no such file or directory ......输入 npm init 进行配置该文件 3.如果npm文件丢失,在控制面板->程序 选择修复. 4.出现express错误,需要在运行的工程的文件夹里进行ex