Node.js相关总结

  node是一门技术,并不是一门新的语言。是JavaScript运行环境。

       node在解析JavaScript,依靠的是什么?

       依靠的是谷歌浏览器中的v8引擎,所以不需要考虑兼容性,node因为是直接用v8引擎去解析,所以没有window对象

二、那么Node.js与JavaScript的区别是什么?

  本质:

     Javascript是一种web前端语言,主要用于web开发中,由浏览器解析执行    

     Node.js是一个可以快速构建网络服务及应用的平台,是用Javascript语言构建的服务平台,可用于后端建立服务器

  区别:     

     Javascript 主要应用前端    是编程语言    客户端编程语言(需要浏览器的javascript解释器进行解释执行)       

     node.js    主要应用后端      1个平台        运行环境(一个基于Chrome JavaScript运行时建立的平台,它是对Google V8引擎进行了封装的运行环境)简单的说node.js就是把浏览器的解释器封装起来作为服务器运行平台,用类似javascript的结构语法进行编程,在node.js上运行。

三、那么node.js有什么优点和缺点呢?

  优点:

    1.事件驱动

    2.异步编程

    3.非阻塞模式的IO

    4.轻量高效

  缺点:

    1.可靠性低

    2.单进程,单线程,只支持单核cpu,不能充分的利用多核cpu服务器。一旦这个进程崩掉,那么整个web服务就崩掉了。

四、node.js的语法

node.js的语法就是JavaScript的语法,基本语法与 javascript 一样,这里我们使用exports导出一个函数,然后再另一文件中通过require导入入一个模块例如 :

  在 a.js 中写一个函数var hello=function(){    console.log('hello')}export.hello=hello;

  在 b.js 中 需要用hello这个函数var a=require('a');a.hello()

什么是模块化?

  把代码全部拆分成模块,主要是方便管理和维护,一个文件就是一个模块。

在node中,有一些内置的模块(包),通过require函数引入:

  fs 文件系统

  http 创建服务

  path 路径

  querystring 参数模块

  url 地址栏

  当然也可以自定义模块

当然,node.js还有很多内置的方法,如比较常用的有读文件、写入文件等等。

node.js的常用方法

引入模块:var  fs = require('fs')

fs模块的常用方法:

/ fs.writeFile(file,str,'utf8',function(err){  
//如果写入成功,这个err为null
//     if(err){
//         throw err;    //如果错误,将错误抛出
//     }

//     // 如果文件不存在,会帮你去创建对应的文件,但是不会创建文件夹
// })

// 同步写文件
// fs.writeFileSync(file, data[, options])

// 异步的追加文件
// fs.appendFile(path, data[, options], callback)

// 同步的追加文件
// fs.appendFileSync(path, data[, options])

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

// 同步的创建文件夹
// fs.mkdirSync(path[, options])

// 异步读文件夹
// fs.readdir(path[, options], callback)
//里面的文件以数组的形式表示出来,进行判断,判断是否是文件夹
// 如果是文件夹,继续读文件夹,如果是文件,直接读文件,然后展示

// 同步的读文件夹
// fs.readdirSync(path[, options])

// 异步判断文件或者文件夹是否存在
// fs.access(path[, mode], callback)   能否判断文件夹是否存在
// fs.access("./data",function(err){   //这个方法是可以判断文件和文件夹是否存在
//     console.log(err);
//     console.log('OK');
// })

// 同步判断文件或者文件夹是否存在
// fs.accessSync(path[, mode])

//同步读文件
fs.readFile(file,'utf8',function(err,data){
            response.end(data);
        })
//异步读文件
fs.readFilesync(file,'utf8',function(err,data){
            response.end(data);
        })

五、服务器的搭建

var http = require("http");   //引入http的模块,用来提供服务

var server = http.createServer();    //创建一个服务器

//server监听request事件,callback
server.on('request',function(request,response){

        //设置请求头
    response.writeHead(200,{"Content-Type" : "text/html;charset=utf8"});
    // 注意:图片,script,css,文本,html都要与之对应
    // response.write("<h1>hello world</h1>");
    // // 输出对应的中文的时候,要有对应的格式和对应的编码
    // response.end("<h2>hello world</h2>");  
        //结束,结束必须有,不然表示这个请求和响应没有完成

        //接口
    if(request.url == "/login.html" && request.method == "GET"){
            response.end("这个是登录界面")
    }else if(request.url == "/register" && request.method == "GET"){
        response.end("这个是注册界面")
    }
    else if(request.url == "/login" && request.method == "POST"){
        response.end("登录成功")
    }
    else {
        response.end("404");
    }


});

// 服务搭建完成,监听端口
server.listen(8888);    //ctrl+c   停止

简略版(基本硬式步骤)

var http = require("http");
var server = http.createServer();
server.on("request",function(request,response){

})
server.listen(8888);
原文地址:https://www.cnblogs.com/gyix/p/10475733.html