美文网首页
Node学习

Node学习

作者: 馋中解禅 | 来源:发表于2017-07-28 11:39 被阅读0次

    1.node简单介绍

    • 基于Chrome V8引擎的JavaScript运行环境
    • 使用了一个事件驱动,非阻塞式I/O的模型,使其轻量又高效
    • 包管理器npm,是全球最大的开源生态系统

    2.Windows常见命令

    • 切换到D盘:D:
    • 返回上一层:cd..
    • 切换目录:cd path
    • 创建目录:mkdir 目录名
    • 查看目录:dir,别名ls(list)
    • 清空控制台:cls,别名clear
    • 删除文件:del,别名rm

    3.node基本命令

    • 进入node环境:node
    • 执行脚本文件:node path/index.js
    • 查看帮助:node --help

    4.全局对象

    • global:类似于客户端JavaScript运行环境中的windows
    • process:用于获取当前的node进程的信息
    • console:提供操作控制台的输入输出功能

    5. module & require

    一个简单的小例子

    //命名为stuff.js
    var counter = function (arr) {
        return arr.length;
    }
    var adder=function(a,b){
        return a+b;
    }
    module.exports={
        //es6对象简写方法
        counter,
        adder
    }
    
    //命名为app.js
    var stuff = require('./stuff');
    console.log(stuff.counter(['ss','dd','ff']));//输出:3
    console.log(stuff.adder(2,4));//输出:6
    

    6.事件模块

    一个简单的小例子

    //引入事件模块
    var events = require('events');
    
    //创建EventEmitter对象
    var myEmitter=new events.EventEmitter();
    
    //注册事件
    myEmitter.on('someEvent',function (msg) {
    
        //使之异步输出
        setImmediate(function () {
            console.log(msg);
        });
    });
    
    //触发事件
    myEmitter.emit('someEvent','实现事件并传递此参数到注册事件的回调函数中');
    console.log(1);//先输出:1
    

    7.文件系统模块

    读取和创建文件并写入

    // 引入文件系统模块
    var fs = require('fs');
    
    // 通过对象调用方法
    // var readMe = fs.readFileSync('readMe.txt','utf8');//同步读取
    // console.log(readMe);
    
    // fs.writeFileSync('writeMe.txt',readMe);//创建writeMe.txt文件并同步写入
    
    // 异步读取文件
    fs.readFile('readMe.txt','utf8',function (err,data) {
        if (err) throw err;
        console.log(data);
    });
    console.log(1);//先输出:1
    
    // 异步写入文件
    fs.readFile('readMe.txt','utf8',function (err,data) {
        if (err) throw err;
        fs.writeFile('writeMe2.txt',data);
    });
    console.log(2);
    
    // 命名为readMe.txt,内容随意
    当你凝视深渊时,
        深渊也同样在凝视着你!
    

    删除文件以及创建和删除文件夹

    // 引入文件系统模块
    var fs = require('fs');
    
    // 通过对象调用方法
    // fs.unlink('writeMe.txt',function (){
    //     if(err) throw err;
    //     console.log('文件删除成功!')
    // });
    
    // 创建文件夹 同步
    // fs.mkdirSync('stuff');
    
    // 删除文件夹 同步
    // fs.rmdirSync('stuff');
    
    // 创建文件夹 异步
    // fs.mkdir('stuff',function(){
    //     fs.readFile('readMe.txt','utf8',function(err,data){
    //         if(err) throw err;
    //         fs.writeFile('./stuff/writeMe.txt',data);
    //     });
    // });
    
    // 删除文件夹 异步
    // 先删除文件夹中的内容,再删除外部的文件夹
    fs.unlink('./stuff/writeMe.txt',function(){
        fs.rmdir('stuff',function(err){
            if(err) throw err;
            console.log('文件夹删除成功!');
        });
    });
    
    
    // 命名为readMe.txt,内容随意
    当你凝视深渊时,
        深渊也同样在凝视着你!
    
    
    // 命名为writeMe.txt,内容随意
    当你凝视深渊时,
        深渊也同样在凝视着你!
    

    8. HTTP 模块

    搭建一个本地服务器

    // 通过http模块,创建本地服务器
    var http=require('http');
    
    // 创建服务器方法
    var server=http.createServer(function (rep,res) {
        console.log("客户端向服务器发送请求"+rep.url);
        res.writeHead(200,{"Content-type":"text/plain"});
        res.end("Server is working!");
    });
    
    // 服务对象监听服务器地址以及端口号
    server.listen(8888,"127.0.0.1");
    console.log("server is running...");
    
    // 浏览器访问127.0.0.1:8888,页面内容为:Server is working!
    

    相关文章

      网友评论

          本文标题:Node学习

          本文链接:https://www.haomeiwen.com/subject/mbjmfxtx.html