1. Node.js是什么?

  简单的说 Node.js 就是运行在服务端的 JavaScript。

  Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。

  Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,因此不需要考虑兼容性的问题,V8引擎执行Javascript的速度非常快,性能非常好。

  Node.js是运行在服务端上的Javascript。

  Node的核心语言是javascript,并不是一门新的语言,而是一门技术。

2. Node的模块

  Node的模块主要分为两类:宿主模块和内置模块。模块的主要目的是为了方便管理和维护。

  宿主对象: window   history

  内置对象:math   data     regexp      array      string......

  模块的导入(require):

var http = require("http");      //导入http模块
var fs = require("fs"); //导入文件系统模块
var querystring = require("querystring"); //导入参数模块
var url = require("url"); //导入地址模块

3. 一个简单的node.js

var http = require("http");   //引入http的模块,用来提供服务
var fs = require("fs");
var server = http.createServer(); //创建一个服务器
//server监听request事件,callback
server.on('request',function(request,response){
response.writeHead(200,{"Content-Type" : "text/html;charset=utf8"});
     res.end('Hello World\n');
}); // 服务搭建完成,监听端口 server.listen(8888); console.log('服务运行在localhost:8888')
//ctrl+c   停止

4. 关于文件系统(fs)的一些常用的方法

  在填写路径的时候必须加上"./"这是表示在当前目录。

  4.1 读取文件 readFile(异步)和readFileSync(同步)。

// fs 文件系统的模块
var fs = require("fs");
// console.log(fs); // 异步读取文件
fs.readFile('./08.txt','utf8',function(err,data){ //如果编码格式不写,输出的就是一串buffer码
if(err){
throw err; //把错误抛出来,阻止代码继续往后面走
}
console.log(data)
}) // 同步
// var data = fs.readFileSync("./08.txt",'utf8') //同步读完就是函数的返回值
// console.log(data)

  4.2  判断文件(文件夹)是否存在

fs.access('./08.txt',function(err){   //判断文件是否存在
if(err){
throw err;
}
// 如果没有抛出错误,文件存在
fs.readFile('./08.txt','utf8',function(err,data){
if(err) throw err; console.log(data);
})
}) fs.access("./abc",function(err){ //判断文件夹
if(err){
throw err;
}
console.log('hello')
})

  4.3 创建文件夹(同异步)

异步的创建文件夹
fs.mkdir("./data02",function(err){
console.log(err); //node会报错,但是错误都不会抛出,不会影响后续代码的执行
console.log('OK');
}) 同步的创建文件夹
fs.mkdirSync(path[, options])

  4.4 读文件夹(同异步)

fs.readdir("./data",function(err,data){
console.log(err);
console.log(data); //里面的文件以数组的形式表示出来,进行判断,判断是否是文件夹
// 如果是文件夹,继续读文件夹,如果是文件,直接读文件,然后展示
}) 同步的读文件夹
fs.readdirSync(path[, options])

5. 知识补充

  什么是i/o?

   i:input

   o:output

   输入和输出, i/o 就是服务器的一个读写操作。

  什么是并发?

   段时间内有多个程序在运行到运行完毕之间。

  同步和异步有什么区别

   同步会阻塞 循环 script加载src。

   异步不会阻塞代码 定时器,link加载css,img加载src。

  什么是异步的IO?
   要有数据的交互 异步的IO 读文件。
   没有数据的交互 异步的非IO setTimeout setInterval。

  线程与进程

   一个程序至少需要一个进程,一个进程至少需要一个线程。

node简介的更多相关文章

  1. 《深入浅出Node.js》第1章 Node简介

    @by Ruth92(转载请注明出处) 第1章 Node简介 一.Node的起源 高性能Web服务器的要点:事件驱动.非阻塞I/O. 选择JavaScript的原因:高性能.符合事件驱动.没有历史包袱 ...

  2. node 简介 起源

    最近的node 的一篇文章阅读量很大,所以写一篇基础篇供大家分享,抛砖引玉,各取所需. 部分内容来源大神笔记. Node.js 简介:@@@@@@@@@@@@@@@@@@@ Node.js是目前非常火 ...

  3. 深入浅出node(1) Node简介

    这一系列主要是自己在学习深入浅出node.js这本书的学习笔试,部分加入了自己的一些理解 分享给一起学习node的小伙伴 自己还是个初学者 有很多地方理解的不到位 一起交流 一 什么是node 1.1 ...

  4. 深入浅出Node.js (1) - Node简介

    1.1 Node的诞生历程 1.2 Node的命名与起源 1.2.1 为什么是JavaScript 1.2.2 为什么叫Node 1.3 Node给JavaScript带来的意义 1.4 Node的特 ...

  5. node必知必会之node简介

    1.什么是node.js 按照: Node.js官方网站主页 的说法: Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript ...

  6. 【读书笔记】《深入浅出nodejs》第一章 Node简介

    1. Node的官方网站: http://nodejs.org 2. Node的缘起: Ryan Dahl 打算设计一个高性能的Web服务器. Ryan Dahl 认为设计高性能Web服务器的要点在于 ...

  7. (2) GoJS Node简介

    node GoJS提供了非常简单的创建Node节点的方法,可将文本内容.结点形状.背景颜色.边距等属性通过数据绑定[go.Binding]直接绑定到对应的Node数据中. 本文简单介绍Node的创建过 ...

  8. 《Node.js 高级编程》简介与第二章笔记

    <Node.js 高级编程> 作者简介 Pedro Teixerra 高产,开源项目程序员 Node 社区活跃成员,Node公司的创始人之一. 10岁开始编程,Visual Basic.C ...

  9. Node基础篇(概要)

    Node简介 客户端的JavaScript是怎样的 什么是 JavaScript? 脚本语言 运行在浏览器中 一般用来做客户端页面的交互(Interactive) JavaScript 的运行环境? ...

随机推荐

  1. idea integrate project

    idea的integrate project功能,版本控制工具:svn 之前我对这个功能的误解太深了,这里特别记录一下这个功能的使用,首先上图 先看这里的source1和source2,里面填的是sv ...

  2. python zip dict函数

    1.zip函数 zip函数可以接受多个参数,返回的结果是列表,列表中的每一个元素是元组的数据类型,下面我们通过几个例子来学习zip函数的用法 1) list1 = [1,2,3] list2 = [4 ...

  3. P1052 过河

    动态规划的好题 状态转移很简单,dp[i] = dp[i-k] + st[i] ,k是移动距离,st[i]判断i位置是否有石头,但是距离太大,需要压缩路径. K∈[1,10],lcm[1,10] = ...

  4. Saltstack自动化操作记录(2)-配置使用 【转】

    之前梳理了Saltstack自动化操作记录(1)-环境部署,下面说说saltstack配置及模块使用: 为了试验效果,再追加一台被控制端minion机器192.168.1.118需要在master控制 ...

  5. java学习笔记06-条件语句

    java条件语句 if...else 单独使用if if(布尔表达式){ 如果布尔表达式为true,执行花括号里的代码 } public static void main(String[] args) ...

  6. TV 丽音(NICAM)功能

    丽音意谓「接近即时的缩扩音频多路广播」 丽音使用数码技术,把电视台发送的两条音频讯号数码化后进行压缩,传送后再在接收机里扩大还原.数码化使用的是14位元 PCM,32千赫采样. 这种广播法可以播出优质 ...

  7. MQTT初步使用

    环境搭建 1.mosquitto所需要的rpm包 2.c-ares-1.12.0 3.安装最新的openssl版本 4.mosquitto-1.4.10 mosquitto需要的rpm包 c-ares ...

  8. Java_面向对象

    目录 一.封装 二.继承 三.多态 四.重载与重写 五.接口与抽象类 六.继承与组合 七.初始化块 面向对象的三大特征:封装.继承.多态. 一.封装 是指将对象的状态信息都隐藏在对象内部,不允许外部程 ...

  9. docker环境下elasticsearch安装ik和拼音分词

    elasticsearch拼音分词地址:https://github.com/medcl/elasticsearch-analysis-pinyin/releases 在elasticsearch下面 ...

  10. spring-cloud-hystrix服务熔断与降级

    Hystrix是一个用于处理分布式系统的延迟和容错的开源库,在分布式系统里,许多依赖不可避免的会调用失败,比如超时,异常等,Hystrix能保证在一个依赖出问题的情况下,不会导致整体服务失败,避免级联 ...