node简介
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简介的更多相关文章
- 《深入浅出Node.js》第1章 Node简介
@by Ruth92(转载请注明出处) 第1章 Node简介 一.Node的起源 高性能Web服务器的要点:事件驱动.非阻塞I/O. 选择JavaScript的原因:高性能.符合事件驱动.没有历史包袱 ...
- node 简介 起源
最近的node 的一篇文章阅读量很大,所以写一篇基础篇供大家分享,抛砖引玉,各取所需. 部分内容来源大神笔记. Node.js 简介:@@@@@@@@@@@@@@@@@@@ Node.js是目前非常火 ...
- 深入浅出node(1) Node简介
这一系列主要是自己在学习深入浅出node.js这本书的学习笔试,部分加入了自己的一些理解 分享给一起学习node的小伙伴 自己还是个初学者 有很多地方理解的不到位 一起交流 一 什么是node 1.1 ...
- 深入浅出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的特 ...
- node必知必会之node简介
1.什么是node.js 按照: Node.js官方网站主页 的说法: Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript ...
- 【读书笔记】《深入浅出nodejs》第一章 Node简介
1. Node的官方网站: http://nodejs.org 2. Node的缘起: Ryan Dahl 打算设计一个高性能的Web服务器. Ryan Dahl 认为设计高性能Web服务器的要点在于 ...
- (2) GoJS Node简介
node GoJS提供了非常简单的创建Node节点的方法,可将文本内容.结点形状.背景颜色.边距等属性通过数据绑定[go.Binding]直接绑定到对应的Node数据中. 本文简单介绍Node的创建过 ...
- 《Node.js 高级编程》简介与第二章笔记
<Node.js 高级编程> 作者简介 Pedro Teixerra 高产,开源项目程序员 Node 社区活跃成员,Node公司的创始人之一. 10岁开始编程,Visual Basic.C ...
- Node基础篇(概要)
Node简介 客户端的JavaScript是怎样的 什么是 JavaScript? 脚本语言 运行在浏览器中 一般用来做客户端页面的交互(Interactive) JavaScript 的运行环境? ...
随机推荐
- webbrowser设置为相应的IE版本
注册表路径: HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATU ...
- 关于Android8及以上版本自定义广播无法接收问题
高版本Android直接发送广播是无法接收的 e.g. sendBraodcast(intent); 需要在前面加上(前一个String为接收广播应用的项目地址,后一个为该广播类的地址) intent ...
- 【interview】卡特兰数
涉及卡特兰数的题目列举,也是组合数学中一些例子: 详解链接 https://zh.wikipedia.org/wiki/%E5%8D%A1%E5%A1%94%E5%85%B0%E6%95%B0 1. ...
- ajax 调用 .net core WebAPI,报错 400 (Bad Request) Unexpected character encountered while parsing value
此文由博主前两天的提问及 dudu 的回答整理,地址:https://q.cnblogs.com/list/myquestion 情况说明 基于 .net core 写了一个 Web API,用 po ...
- MQTT控制---connect
连接服务端 客户端到服务端的第一个报文必须是CONNECT,且只能发送一次,发送的第二个connect报文当作违规处理并断开连接. 有效载荷包含一个或者多个编码的字段.包括客户端的唯一标识符,Will ...
- Unity iOS Appstore 上架的问题
之前一直是一个人的名义上架的应用.现在变成:公司的账号就会出现一些莫名的问题: 首先是账号需要新的boulder名字,新建之后下载验证key. 注意:真机测试不发布,选择自动签名就行了:需要发布就取消 ...
- WOW.js – 让页面滚动更有趣
官网:http://mynameismatthieu.com/WOW/ 建议去官网一看 下载地址:https://github.com/matthieua/WOW 浏览器兼容 IE10+ Chrom ...
- LoadRunner学习笔记(二)
LoadRunner Controller简介: 当虚拟用户脚本开发完成后,使用controller将这个执行脚本的用户从单用户转化为多用户,从而,模拟大量用户操作, 进而形成负债(多用户单循环,多用 ...
- ollydbg入门记录
1.软件窗口说明 OllyDBG 中各个窗口的名称如下图.简单解释一下各个窗口的功能, 反汇编窗口:显示被调试程序的反汇编代码,标题栏上的地址.HEX 数据.反汇编.注释可以通过在窗口中右击出现的菜单 ...
- walle2.0 nginx.conf配置文件参数
vim /usr/local/nginx/conf #user nobody; worker_processes ; events { worker_connections ; } http{ inc ...