node入门学习

Posted aGod

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了node入门学习相关的知识,希望对你有一定的参考价值。

一、模块系统

1.创建模块和引用模块

//如何创建一个模块

exports.hello = function(){
    console.log(\'hello worl\');
};

//这创建了一个模块
//如何引用模块

  //1.require();
var hello = require(\'./module.js\');

hello.hello();

//2.

var {hello} = require(\'./module.js\');

hello();

2.服务端的模块

//服务端的模块
var http = require(\'http\');

http.createServer(function(request,response){

});

//http 模块放在哪里的呢?  模块的加载顺序又是什么样的呢?

/*
 *  1. 当require(); 一个模块的时候 首先会去 文件模块缓冲区去找
 *  如果存在,直接exports出来
 *  2.如果没有找到,在去原生模块缓冲区去找 => 原生模块 => 缓存 => exports
 *
 *  3.没有找到就去文件系统
 *
 */

二、函数

//其实就javascript中的函数。
var lan = function(lang){
    console.log(lang);
}

function say(factory,lang){
    factory(lang);
}

say(lan,\'chinese\');

var http = require(\'http\');

http.createServer(function(request,response){
    response.writeHead(200,{\'Content-Type\':\'text/plain;charset=utf8\'});
    response.write(\'hello world\');
    response.end();
}).listen(3000);

三、路由

var http = require(\'http\');
var url = require(\'url\');

http.createServer(function(request,response){
    var pathname = url.parse(request.url,true).pathname;
    //http://localhost:8080/user
    console.log(pathname);
    //pathname  /user

    /*
     http://localhost:8080/admin
     
     pathname  =>   /admin
    
     */
    response.writeHead(200,{\'Content-Type\':\'text/plain;charset=utf8\'});
    response.write(\'这个路径是:\' + pathname);

    response.end();


}).listen(8080);

四、全局对象

1.在 node中有一个全局对象为global。所有的全局对象都可以在global找到。当然不包括他自己。而在浏览器中的全局对象为window

2.__filename  表示当前正在执行的脚本的文件名。它将输出这个文件的绝对路径

3.__dirname 表示当前正在执行脚本的目录

4.setTimeout  => clearTimeout   ||    setInterval  =>  clearInterval

5.console =>  api较多

6.process 方法较多。 主要描述node 的进程情况

 

五、GET、POST请求。

1.GET请求(其实就是参数带在url上吧)

var http = require(\'http\');
var url = require(\'url\');
var fs = require(\'fs\');

var data = \'\';

var readStream = fs.createReadStream(\'get.html\');

readStream.on(\'data\',function(chunk){
    data += chunk;
});

readStream.on(\'end\',function(){
    console.log(\'获取html完毕\');
});

http.createServer(function(request,response){
    var params = url.parse(request.url,true).query;
    var userName = params.userName;
    var userPhone = params.userPhone;
    //http://localhost:8888/get.js?userName=node&userPhone=10086
    
    console.log(userName,userPhone);// node  10086
    response.writeHead(200,{\'Content-Type\':\'text/html;charset=utf8\'});
    if(!!userPhone && !!userName){
        response.write(\'<h1>保存成功</h1>\')
    }else{
        response.write(data);
    };
    response.end();
}).listen(8888);

console.log(\'node server start 127.0.0.1:8888\')
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="./get.js" method="GET">
    <input type="text" name="userName">
    <input type="text" name="userPhone">
    <input type="submit" value="提交">
</form>
</body>
</html>

2.POST请求 (参数没有暴露在url上获取参数的方式和GET有很大的区别);

var http = require(\'http\');
var querystring = require(\'querystring\');
var fs = require(\'fs\');

var data = \'\';

var readStream = fs.createReadStream(\'post.html\');

readStream.on(\'data\',function(chunk){
    data += chunk;
});

readStream.on(\'end\',function(){
    console.log(\'获取html完毕\');
});

http.createServer(function(request,response){
    var postData = \'\';

    request.on(\'data\',function(chunk){
        postData += chunk;
    });
    request.on(\'end\',function(){
        var params = querystring.parse(postData);
        console.log(postData);
        var userName = params.userName;
        var userPhone = params.userPhone;
        //http://localhost:8888/post.js

        console.log(userName,userPhone);// node  119
        response.writeHead(200,{\'Content-Type\':\'text/html;charset=utf8\'});
        if(!!userPhone && !!userName){
            response.write(\'<h1>保存成功</h1>\')
        }else{
            response.write(data);
        };
        response.end();
    });

}).listen(8888);

console.log(\'node server start 127.0.0.1:8888\')

post.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="./post.js" method="POST">
    <input type="text" name="userName">
    <input type="text" name="userPhone">
    <input type="submit" value="提交">
</form>
</body>
</html>

六、结束语

Node.js的入门教程就完毕了。写得比较简洁,也没有贴图。我觉得作为一个程序员。学习能力固然重要,但更重要的是动手能力。每个方法都去敲一遍了,自然就明白这个方法

有什么用了。没有什么东西去敲一遍解决不了的,如果非要说有那就多敲2遍。

Node.js的基础知识很多,这2篇博文的挑了些,比较重要的说了下。其中主要是文件系统,文件流,路由,GET\\POST。模块知识在工作中会经常遇到。当然在实际项目会用不到这些,因为都会借助express框架。来进行项目开发。但当我们了解其原理。操作起来就根据得心应手了。

 

没有什么坎坷是过不去的,加油!Comm on!

 

以上是关于node入门学习的主要内容,如果未能解决你的问题,请参考以下文章

node.js从入门到放弃

Node.js JavaScript 片段中的跳过代码

nodejs入门学习笔记二——解决阻塞问题

Node.js 入门教程 :准备

JS做深度学习1——偶然发现与入门

AngularJS入门学习笔记一