Node.js Up and Runing 学习日记(一)
认识一个Node.js程序
HTTP模块是专为快速非阻塞式HTTP服务器而用C重新编写的.
1. var http = require('http');
2. http.createServer(function(req, res){
3. res.writeHead(200,{'Content-Type':'text/html'});
4. res.end('hello world!');
5. }).listen('8230','127.0.0.1');
6. console.log('server running in 127.0.0.1/8230');
流程说明
首先通过
require()方法把HTTP库包含到程序中来当前需要了解到的是,HTTP库所既有的功能已经赋给了http对象
下一步创建HTTP服务器
或者创建一个HTTP实例来调用HTTP模块的一个工厂模式方法(createServer)来创建新的HTTP服务器
新的HTTP服务器并没有赋值给任何变量,它只会成为存活在全局范围内的匿名对象
我们可以通过链式调用来初始化服务器,并告诉它监听8124端口.
当调用createServer的时候,传入一个匿名函数作为参数
绑定在新创建服务器的事件监听器上进行request事件处理
消息事件是javascript和Node的核心
在这个例子中,每当一个新的访问请求到达Web服务器,它都将调用我们指定的函数方法来处理,称之为回调.
因为每当一个事件发生时,我们将回调监听此事件的所有函数.
回调函数有两个参数:
请求的对象(req)
响应的对象(res)
通常会需要同时使用请求和响应对象.
res.writeHead()来设置HTTP响应头,否则就不能返回真实内容给客户端
其中状态码:200表示OK.
并且传入一段HTTP头描述,这里只指定Content-Type.一般有两种类型:
text/plain 表示一般文本;
text/html 表示HTML文本
在本例中 end() 来同时完成写入正文以及关闭连接
end方法会关闭HTTP连接,但因为我们传入一个字符串,所以会在发送此内容后才关闭连接
最后一行调用console.log()标准输出stdout流上打印信息.
运行
node hello.js
然后在浏览器打开 <127.0.0.1/8230>.
Date : 2017/08/05 20:30
Node.js Up and Runing 学习日记(一)的更多相关文章
- 【特别推荐】Node.js 入门教程和学习资源汇总
这篇文章与大家分享一批很有用的 Node.js 入门教程和学习资源.Node 是一个服务器端的 JavaScript 解释器,它将改变服务器应该如何工作的概念.它的目标是帮助程序员构建高度可伸缩的应用 ...
- Node.js 入门教程和学习资源汇总
这篇文章与大家分享一批很有用的 Node.js 入门教程和学习资源.Node 是一个服务器端的 JavaScript 解释器,它将改变服务器应该如何工作的概念.它的目标是帮助程序员构建高度可伸缩的应用 ...
- Node.js环境搭建和学习(windwos环境)
Node.js环境搭建和学习 一.环境搭建 1.下载安装文件 下载地址http://nodejs-org.qiniudn.com/下载Node.js环境安装包,根据操作系统下载对应的安装包 下载地址 ...
- 《Node.js核心技术教程》学习笔记
<Node.js核心技术教程>TOC \o "1-3" \h \z \u 1.章模块化编程 2019.2.19 13:30' PAGEREF _101 \h 1 08D ...
- Node.js amqplib 连接 Rabbitmq 学习笔记
var amqp = require('amqplib'); connect([url, [socketOptions]]) var amqp = require('amqplib/callback_ ...
- Node.js+Express框架+Mongo学习(一)第一个node.js实例
1.在桌面新建一个空的文件夹,比如叫node,当然也可以在其它地方新建. 2.命令行进入到所新建的文件夹的目录,下载Express框架,再在这个文件夹里新建一个叫final的项目 3.在项目(fina ...
- Node.js学习系列总索引
Node.js学习系列也积累了一些了,建个总索引方便相互交流学习,后面会持续更新^_^! 尽量写些和实战相关的,不讲太多大道理... Node.js学习笔记系列总索引 Nodejs学习笔记(一)--- ...
- 【入门必备】最佳的 Node.js 学习教程和资料书籍
Web 开发人员对 Node.js 的关注日益增多,更多的公司和开发者开始尝试使用 Node.js 来实现一些对实时性要求高,I/O密集型的业务.这篇文章中,我们整理了一批优秀的资源,你可以得到所有你 ...
- 系列文章--Node.js学习笔记系列
Node.js学习笔记系列总索引 Nodejs学习笔记(一)--- 简介及安装Node.js开发环境 Nodejs学习笔记(二)--- 事件模块 Nodejs学习笔记(三)--- 模块 Nodejs学 ...
随机推荐
- ajax数据请求5(php格式)
ajax数据请求5(php格式): <!DOCTYPE html> <html> <head> <meta charset="UTF-8" ...
- 自己编写的 C++ 超轻量级日志类
[自己编写的 C++ 超轻量级日志类(兼容vc++6.0.vs2010.vs2015)] 先来看效果: [测试文件:test.cpp] /* 作者:闫文山 时间:2017/07/02 介绍: 本日志类 ...
- 使用Homebrew安装MySQL
安装命令: brew install mysql 安装完成之后,启动mysql: mysql.server start 发现无此命令: command not found 首先,检查是否是安装了.重新 ...
- phpstorm,webstorm取消自动保存并标识修改的文件为星星标记
a.取消自动保存是去掉一下两个勾选. b.标记星星要勾选下面的选项.
- Python3中的模块
模块使用哪种语言实现并不重要,因为所有的模块导入与使用的方式都相同. 1.常用模块导入格式: import importable1,importable2,... import importable ...
- VB6之SendMessage模拟拖放事件
原文链接:http://hi.baidu.com/coo_boi/item/e1e0f5ab45bddbdd5af191df 网上找了个C++的翻一下,原文链接:http://www.cnblogs. ...
- vijos1090题解
题目: 有n个正整数排成一行.你的目的是要从中取出一个或连续的若干个数,使它们的和能够被k整除. 例如,有6个正整数,它们依次为1.2.6.3.7.4.若k=3,则你可以取出1.2.6,或者2.6.3 ...
- Vue 实际项目中你可能会遇见的坑
纸上得来终觉浅,绝知此事要躬行! Vue的文档和教程看的太多,小的demo做的多,也不如自己实际的进行一个完整项目的开发.只有做了才知道原来问题这么多,这里列举了一些你做demo教程可能不会遇见的坑. ...
- IE浏览器兼容
IE6下面元素的宽高小于16PX时 会默认以16PX显示(最小宽高) 解决办法:设置元素overflow:hidden; 当文字全是字母或数字时会超容器对溢出隐藏的样式失效, 解决办法:设置下父级 ...
- docker搭建zabbix
本次使用docker搭建zabbix的组合是mysql+docker+zabix-server 1 先安装数据库mysql docker run --name zabbix-mysql-server ...