node基础

         今天在网上看到了一个原来没有听说过的定义,高阶函数和偏函数。个人觉得这么个形容还是很有创意的。也可能我很土鳖没有见过世面吧!在此稍作解释。

function hignFun(){
    return function(a,b){
        a+b;
    }
}
var add = hignFun();

      据说这就是高阶函数,其实这么个称谓我觉得也是比较恰当的.类比高数中的高阶函数,还是比较形象的.起码对于记忆标识这种形式的函数是有帮助的.

var isType = function  (type) {
    return function(obj){
        toString.call(obj) == "[object "+type+"]"
    }
}
var isArray() = isType("Array");

      这样的形式的函数叫做偏函数.大意就是传参进去搞个半成品,返回出来.正式使用的时候再传参完成整个操作.有点像工厂模式.高阶函数和偏函数的唯一区别就是,是否外层函数对内层函数构成影响.要这么来说,偏函数这个称谓的确很恰当.

       好了,进入正题.node的基础知识梳理.

       1,fs模块

       node的异步IO操作是其核心的最重要的技术之一。异步的操作使得避免了传统多线程模式下,频繁切换上下文的大量开销。fs模块提供了一些列的API,已经趋于成熟。

      一下给出了一些基本的常用的API示例代码。千万不要复制了去运行,仅仅提供观看功能!

var fs= require("fs");

fs.writeFile(‘test.txt‘, ‘Hello Node‘, function (err) {
    if (err) throw err;
   console.log(‘Saved successfully‘); //文件被保存
});

fs.appendFile("nodeNote.txt","im coming!!!",function(err){
    if (err) throw err
        console.log("data already add to end of file")
})

fs.exists("nodeNote.txt",function(flog){
    process.stdout.write(flog+"");
})

fs.rename("nodeNote.txt","Note.txt",function(err){
    if(err) throw err
        console.log("rename successfully");
})

fs.readFile("Note.txt",function  (err,data) {
    if(err){
        throw err
    }else{
        process.stdout.write(data+"\n I am data!!");
    }
})

fs.unlink("n.js",function(err){
    if (err) {
        throw err
    };
    process.stdout.write("remove successful")
})

fs.mkdir("n/c",function  (err) {
    if (err) {
        process.stdout.write(err)
    };
})
fs.rmdir("./node",function  (err) {
    if (err) {
        process.stdout.write(err)
    };
})

fs.readdir("./hz",function(err,files){
    if (err) {
        throw err
    };
    console.log(files);
})

         以上给出的都是异步的操作,fs模块还提供了同步的操作。具体视情况而定去选择。

       2,util模块提供了一些常用的工具方法,主要有对字符串的格式化,判断变量类型等等操作。

var util = require(‘util‘);

var result;
result = util.inspect(object, showHidden=false, depth=2)
result = util.format("%s:%j","abs",{name:2},12);
result = util.isArray([1,"hauzi"]);
result = util.isDate(new Date())
result = util.isRegExp(/\d/)
console.log(result)

          3,url模块

        URL模块主要给出了URL解析相关的一些操作。json2string,string2json。还有具体的域名解析等等

var url = require("url");

var urlString = url.parse("http://www.baidu.com");
for(var key in urlString){
    console.log(key+" : "+urlString[key])
}

var urlString = url.format({
    host:"imooc.com",
    protocol :"https",
    port:"80",
    path:"/news"
})
console.log(urlString)
var combine = url.resolve("http://baidu.com/","/news");
console.log(combine);

          4,querystring

          querystring中主要有两个方法,stringify和parse实际上在js中也有实现。JSON.stringify,JSON.parse.那独立到querystring,顾名思义是为了query而准备的了!

var query = require("querystring")

var string = query.stringify({name:‘huazi‘,age:22},"^","_");
console.log(string) //name_huazi^age_22

var str = query.parse(‘name_huazi^age_22‘,‘^‘,‘_‘);
console.log(str);    //{ name: ‘huazi‘, age: ‘22‘ }

       5,path

       做web的都知道,在处理文件的时候path是个比较麻烦的事情。没有工具的情况下只能手工的处理。当然有了path之后一切轻松了!只列出一部分哦

var path = require("path");

var newpath = path.normalize("../sbin/./apm_available///sbin");
var newpath = path.join("url.js//newpath","//mnt/newpath")
var newpath = path.dirname("./nodeNote/dirname/path");
var newpath = path.extname("./url.ht/path.js");

console.log(newpath);

          6,child_process

         启动一个进程去执行一项任务。特别的fork,exec感觉更加的友好!

var childProcess = require("child_process");

 var child = childProcess.spawn("ls"[‘-l‘]);
child.stdout.on(‘data‘,function(data){
    console.log(data)
})
childProcess.exec("ls -lah",function(err,stdout,stderr){
    if (err) {
        throw err
    };
    console.log(stdout);
// })
childProcess.execFile("node util.js",function(err,stdout,stderr){
    if (err) {
        throw err
    };
    console.log(stdout)
});
childProcess.fork("querystring.js");

        7,os

      

            截图来自nodeAPI中文网。不知道什么时候能用到。只需要判断需求是系统级别的,那估计在这找就没差了!

        大致基础部分就这些!如果这些都搞定了,对node就有个基本的了解了!进阶的事情,后面再说!

时间: 2024-10-08 15:15:09

node基础的相关文章

node基础(2)

NODE基础(周啸天2) NODE NODE 是一个以webkit(V8)引擎来渲染和解析JS的平台 在没有NODE之前,JS是一门基于客户端浏览器运行的脚本编程语言:JS是前端编程语言: 在有了NODE之后,JS也可以运行在NODE环境中了,我们可以把NODE安装在服务器端,这样我们就可以在服务器端执行JS,JS也可以处理服务器端的业务逻辑了:JS是后台编程语言: JS是全栈编程语言 JS运行在浏览器中,浏览器提供了很多内置的属性和方法(window全局对象):JS如果运行在NODE环境下,它

node基础(3)

NODE基础(周啸天3) NODE HTTP事物 HTTP传输的这件事,能称之为事物,说明这件事情比较的完整:Request + Response,只有请求和响应两个阶段都完成,才算HTTP事物完成 HTTP报文 1.客户端不仅可以向服务器发送请求,还可以把一些内容传递给服务器 2.服务器端也会把一些内容返回给客户端 客户端传递给服务器的内容以及服务器返回给客户端的内容统称为"HTTP报文":请求报文.响应报文 不管是请求还是响应报文,内容中都包含三部分: 起始行 : 请求起始行.响应

node基础知识(1)

NODE基础(周啸天1) NODE 1.常用DOS命令 WIN键+R键 -> cmd -> 打开DOS命令窗口 ipconfig 或者 ipconfig -all :查看本机电脑的IP地址.子网掩码.默认网关.DNS.物理地址(MAC地址)等信息 我们看到的IP地址属于局域网IP或者叫做内网IP,如果大家的子网掩码和默认网关相同,IP地址只有最后一组数据不一样(连接的是同一个路由器/WIFI) ,此时说明大家在同一个局域网内,我们可以通过IP互相访问 cls 清屏 exit 退出 D: 直接进

node基础应用

node基础应用 API art-templat express mongoDB 1.概念 1.Node.js 基于javascript开发,运行在服务端. 2.事件驱动.非阻塞I/O 3.基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好. 2.实操 2.1 安装 node node 官网 检查是否安装成功 node -v /--version 2.2 简单使用 1.node和浏览器一样可以执行js文件 cmd 打开命令窗口 在终端输入 ` node 文件名.

node基础01:简要介绍

1.node vs php 优点 性能高(机制问题) 开发效率高(省了不少优化的事) 应用范围广(可以开发桌面系统,electron框架) 缺点 新,人少 中间件少 IDE不完善 2.node的劣势和解决方案 默认不支持多核,使用cluster可以解决 默认不支持服务器集群,node-http-proxy可以解决 使用nginx做负载均衡,静态的由nginx处理,动态由node处理 forever或node-cluster实现灾难恢复 3.框架选择 比较热门的框架有:express,koa,Ha

Vue.js 运行环境搭建详解(基于windows的手把手安装教学)及vue、node基础知识普及

Vue.js 是一套构建用户界面的渐进式框架.他自身不是一个全能框架——只聚焦于视图层.因此它非常容易学习,非常容易与其它库或已有项目整合.在与相关工具和支持库一起使用时,Vue.js 也能完美地驱动复杂的单页应用. 在配置环境之前呢,有些基础的东西还是要和大家普及一下的.如果你已经对Vue.js有所了解,那请点击 配置步骤  跳转到配置环境的阅读,否则,请耐心看完看完. 首先,介绍一下Vue.js的概念,他是干啥的呢?一定要配置vue的运行环境吗? 如上述Vue.js不是个全能的框架,因为他的

Node 基础 备注

1.1 Node简介 Node的异步I/O, 在Node中,可以从语言层面很自然的进行并行I/O操作,每个操作直接无需等待之前的I/O调用结束: 事件与回调函数: Node保持了JavaScript在浏览器中单线程的特点,而且在Node中,JavaScript与其余线程是无法共享热河状态的,单线程的最大好处是不用像多线程编程那样处处在意状态的同步问题,没有死锁的存在,也没有线程上下文交换所带来的性能上的开销: 1.2 模块 JavaScript先天缺乏一项功能: 模块:  javascript通

node 基础概念整理

js和node的知识结构结构映射 角色 js node 语言基础: ECMAScript ECMAScirpt 操作对象: 浏览器 DOM BOM 系统 os 文件 fs 网络 net 数据库database ... 顶层对象: window global 模块目录解析 path: 路径解析模块 - 获得模块的路径.路径拼接... fs:文件系统模块 - 打开.修改.重命名.监听... global:全局变量 - 设置全局变量和方法.包含默认的全局方法啊 events:事件系统 - 注册一些事件

node基础11:接受参数

1.接收参数 在Node中接受GET/POST请求的参数不像PHP那样,在PHP中直接有全局变量$_GET,$_POST来接受url,或者请求体重的参数. 在node中接受GET参数使用url.parse(req.url, true).query可以获取请求参数,使用queryString.parse(data)来从请求体中来获取字段. // server.js var http = require("http"); var url = require('url'); var rout