博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
node入门学习(二)
阅读量:4839 次
发布时间:2019-06-11

本文共 3901 字,大约阅读时间需要 13 分钟。

一、模块系统

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('

保存成功

') }else{ response.write(data); }; response.end();}).listen(8888);console.log('node server start 127.0.0.1:8888')
    
Title

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('

保存成功

') }else{ response.write(data); }; response.end(); });}).listen(8888);console.log('node server start 127.0.0.1:8888')

post.html

    
Title

六、结束语

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

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

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

 

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

 

转载于:https://www.cnblogs.com/createGod/p/6859057.html

你可能感兴趣的文章
Apache Tez 0.7、0.83、 0.82 安装、调试笔记
查看>>
JAVA基础学习之路(五)数组的定义及使用
查看>>
利用Chrome模拟访问移动端网页
查看>>
20170505
查看>>
团队-科学计算器-团队一阶段互评
查看>>
ios触摸事件处理
查看>>
apache 整合svn
查看>>
Oracle 测试语句
查看>>
linux计划任务
查看>>
Egg 企业级应用开发框架的搭建
查看>>
input与button按钮背景图失效不显示的解决办法
查看>>
[Mac入门]如何在Mac下显示Finder中的所有文件
查看>>
证明二叉查找树所有节点的平均深度为O(logN)
查看>>
JavaScript基础--简单功能的计算器(十一)
查看>>
WPF Visifire使用 ---- 基础篇二
查看>>
SSAS: Using DMV Queries to get Cube Metadata
查看>>
操作系统存储器管理选择题精练
查看>>
一条咸鱼的养成
查看>>
修复LSP 解决不能上网问题
查看>>
第四周作业总结
查看>>