Node.js相关总结

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

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

       依靠的是谷歌浏览器中的v8引擎,因此不须要考虑兼容性,node由于是直接用v8引擎去解析,因此没有window对象html

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

  本质:前端

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

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

  区别:     web

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

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

 

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

  优势:数组

    1.事件驱动

    2.异步编程

    3.非阻塞模式的IO

    4.轻量高效

  缺点:

    1.可靠性低

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

 

4、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);
        })

5、服务器的搭建

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);
相关文章
相关标签/搜索