第一次接触node.JS
1.初识node.js
node.js平时可以关注:
一、nodejs.org看看nodejs的版本升级,新特性的加入,重要bug的修复等
二、www.npmjs.com模块社区,看他人源代码,省力
三、github.com大量的项目和源码
四、stackoverflow.com技术解答社区以及查询相关资源,环境配置,异常均可找到答案
从这四个方面了解下node.js的知识。
node的版本问题:
初次体验node.js的代码:
在server.js中输入:
var http = require('http');
var server = http.createServer(function(req,res){
res.writeHead(200,{'Content-Type':'text/plain'});
res.end('hello xuzhudong\n');
})
server.listen(1337,'127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');
运行git bash,输入node server.js,就可以看到
在浏览器中输入接口:http://127.0.0.1:1337/,就可以看到输出:
2.模块和包管理工具
在这里先了解下CommonJS,它也影响着node.js,node.js也有着自己的一套模块管理工具。
Commonjs是一套规范呐!
CommonJS模块的特点如下:
所有代码都运行在模块作用域,不会污染全局作用域。
模块可以多次加载,但是只会在第一次加载时运行一次,然后运行结果就被缓存了,以后再加载,就直接读取缓存结果。要想让模块再次运行,必须清除缓存。
模块加载的顺序,按照其在代码中出现的顺序。
node.js的模块分类:
node.js的流程
3.node.js解析URL地址
进入node环境下:
解析一段url地址:使用url.parse()方法
在上图中:
slash是斜线,query 参数列表
url语法:
url.parse(urlStr, [parseQueryString], [slashesDenoteHost])
url接收三个参数:
urlStr url字符串
parseQueryString 为true时将使用查询模块分析查询字符串,默认为false
slashesDenoteHost
默认为false,//foo/bar 形式的字符串将被解释成 { pathname: ‘//foo/bar' }
如果设置成true,//foo/bar 形式的字符串将被解释成 { host: ‘foo', pathname: ‘/bar' }
如下图:parseQueryString 为true时,可知query已经属于分析状态。
对于另外一种格式的url地址:
slashesDenoteHost 使用的时候:host和hostname,pathname都有解析
url.format()方法,将一个解析后的URL对象、转成、一个格式化的URL字符串
url.resolve方法,为URL或 href 插入 或 替换原有的标签
源码:
第一次接触node.JS的更多相关文章
- Node.js/Vue环境搭配安装
http://blog.sina.com.cn/s/blog_497ff1a70102x0sw.html 第一次接触Node.js,想创建自己的服务就须配置好Node.js环境 安装Node.js 下 ...
- 教你一步一步用 Node.js 制作慕课网视频爬虫
转自:http://www.jianshu.com/p/d7631fc695af 开始 这个教程十分适合初学 Node.js 的初学者看(因为我也是一只初学的菜鸟~) 在这里,我就默认大家都已经在自己 ...
- Node.js基础与实战
Node.js基础与实战 Node.jsJS高级进阶 NODE原理与解析 REPL交互环境 模块与NPM Buffer缓存区 fs文件操作 Stream流 TCP&UDP 异步编程 HTTP& ...
- 关于node.js的误会
昨天写了篇博客,介绍了一下我对node.js的第一次亲密接触后的感受,以为node.js很小众,出乎我意料很多人感兴趣,并且对博客中的细节问题做了评论,最多的是围绕node.js的异步与单线程展开的, ...
- Node.js : 我只需要一个店小二
刚刚开始接触Node.js时, google了很多文章,但发现大部分都是泛泛的介绍安装,配置,以及介绍几个小例子 有一种雾里观花的感觉,所以非常困惑,不知道Node.js到底解决了什么问题,它的优势到 ...
- Node.js安装和配置
今天有时间开始要研究Node.js了,项目的需要,先把环境正好,初次接触,把安装和配置过程记录下来,以备不时之需.言归正传. 1.打开NodeJS的官网,下载和自己系统相配的NodeJS的安装程序,包 ...
- [转]Node.js框架对比:Express/Koa/Hapi
本文转自:https://www.cnblogs.com/souvenir/p/6039990.html 本文翻译自: https://www.airpair.com/node.js/posts/no ...
- [译]Node.js框架对比:Express/Koa/Hapi
本文翻译自: https://www.airpair.com/node.js/posts/nodejs-framework-comparison-express-koa-hapi 1.介绍 直至今日, ...
- [Node.js] ECMAScript 6中的生成器及koa小析
原文地址:http://www.moye.me/2014/11/10/ecmascript-6-generator/ 引子 老听人说 koa大法好,这两天我也赶了把时髦:用 n 安上了node 0.1 ...
随机推荐
- fftw3.3.3在redhat4.4下安装
FFTW ( the Faster Fourier Transform in the West) 是一个快速计算离散傅里叶变换的标准C语言程序集,其由MIT的M.Frigo 和S. Johnson 开 ...
- wpf中数据绑定和INotifyPeropertyChanged的理解
原创:转载请注明出处. 先说数据绑定: XAML代码: <Window x:Class="数据绑定和INotifyPropertyChanged.Window1" Loade ...
- Chapter 6 排序
Chapter 6 排序 1- 直接插入排序 O(n2) O(1) 2- 折半插入排序 O(n2) O(1) 适合关键字较多 3- 希尔排序O(nlogn) O(1) 又名,缩小增量排序 ...
- Python PIL 怎么知道写入图片格式的kb大小
把图片数据写入一个IO,读这个IO的长度大小: #-*-coding:utf-8-*- from PIL import Image import io img = Image.open("1 ...
- quartz 定时任务配置文件信息
quartz 定时任务配置文件有五大要素,配置好这五大要素,quartz 就能够正常的工作. 五大要素分别是: 1.工作的 bean:具体是哪个 Java 类来作为定时任务的文件入口,并配置该 bea ...
- nowcoder牛客wannafly挑战赛20
A---染色 签到题,设最终颜色为x,一次操作就需要把一个不是x的点变为x,所以最终颜色为x时需要操作 总结点个数-颜色为x的节点个数,然后枚举所有颜色就行了 #include <iostrea ...
- git的三个区域比较
工作区: 暂存区: 提交区: 工作区与暂存区比较:git diff 工作区与提交区比较:git diff 提交hash码或者HEAD 暂存区与提交区比较:git diff --cached 两个不同提 ...
- 主从复制系列A
一.主从原理 Replication 线程 Mysql的 Replication 是一个异步的复制过程,从一个 Mysql instace(我们称之为 Master)复制到另一个 Mysql in ...
- HZOI20190908模拟40 队长快跑,影魔,抛硬币 题解
题面:https://www.cnblogs.com/Juve/articles/11487699.html 队长快跑: 权值线段树与dp yy的不错 #include<iostream> ...
- Django项目:CRM(客户关系管理系统)--56--47PerfectCRM实现CRM客户报名流程01
#urls.py """PerfectCRM URL Configuration The `urlpatterns` list routes URLs to views. ...