node将"HTTP服务器"这一层抽离,直接面向浏览器用户

如PHP运行之前先要配置一个功能强大而复杂的HTTP 服务器,譬如Apache、IIS 或Nginx,还需要将PHP 配置为HTTP 服务器的模块,或者使用FastCGI 协议调用PHP 解释器。这种架构是“浏览器 — HTTP 服务器 —  PHP 解释器”的组织方式

node最大的特点是异步I/O,  众所周知也就是单线程 ,相对于例PHP多线程来说, 不会阻塞,例如 当线程遇到I/O操作时候,不会等待I/O操作完成或数据返回,而只是将I/O请求发送给操作系统,而在继续执行下一句.反之同理,多线程就是阻塞,阻塞了咋办?就多开一条线程执行 坏处?(请自行百度) 下面这两张图更加的清晰理解

多线程:

单线程

下面上今晚学到的东西

var http = require("http"); //创建http模块

http.createServer(function(req,res){
res.writeHead(,{'Content-Type' : 'text/html'});
res.write("<h1>hellow Node.js</h1>");
res.end("<p>node</P>");
}).listen();//创建端口
console.log("运行成功")

入门写烂的语句 也就是创建node的核心模块http

创建模版 node提供了exports和require两个对象.

exports是模块的公开借口 require是获取模块的接口 用法很简单

//module.js
var name;
exports.tagname = function(a){
name = a;
}
exports.tagtable = function(){
console.log("I am "+name)
}
//getmodule
var get = require("./module"); get.tagname("LEE");
get.tagtable();

正如所示 输出的是LEE

不过这都是单向加载的 例如

var get = require("./module");

get.tagname("LEE");

var get = require("./module");

get.tagname("LEE2");

get.tagtable();

输出的是LEE2 因为都是指向同一个变了 第二个的覆盖了第一个 所以是LEE2

有时候把代码写好一点就是这样

function Hello(){
var name;
this.setName = function(thyName) {
name = thyName;
}; this.sayHello = function() {
console.log('Hello ' + name);
};
};
module.exports = Hello;
var Hello = require('./hello')
hello = new Hello();
hello.setName('Lee');
hello.sayHello();

输出的"Lee" ;

把今晚学的东西总结下,自己也更加清晰了解了模块

继续成长中....

  

  

nodeJs入门笔记(一)的更多相关文章

  1. nodeJs入门笔记(二)

    js中window通常是全局变量 global 是node.js里的全局变量 node中能访问的对象一般都是 global的 属性 global 对象属性 process 用于描述当前Node 进程状 ...

  2. Nodejs学习笔记(十六)--- Pomelo介绍&入门

    目录 前言&介绍 安装Pomelo 创建项目并启动 创建项目 项目结构说明 启动 测试连接 聊天服务器 新建gate和chat服务器 配置master.json 配置servers.json ...

  3. Nodejs学习笔记(十六)—Pomelo介绍&入门

    前言&介绍 Pomelo:一个快速.可扩展.Node.js分布式游戏服务器框架 从三四年前接触Node.js开始就接触到了Pomelo,从Pomelo最初的版本到现在,总的来说网易出品还算不错 ...

  4. NodeJS学习笔记 进阶 (13)Nodejs进阶:5分钟入门非对称加密用法

    个人总结:读完这篇文章需要5分钟,这篇文章讲解了Node.js非对称加密算法的实现. 摘录自网络 地址: https://github.com/chyingp/nodejs-learning-guid ...

  5. nodeJs 5.0.0 安装配置与nodeJs入门例子学习

    新手学习笔记,高手请自动略过 安装可以先看这篇:http://blog.csdn.net/bushizhuanjia/article/details/7915017 1.首先到官网去下载exe,或者m ...

  6. Nodejs学习笔记(四)——支持Mongodb

    前言:回顾前面零零碎碎写的三篇挂着Nodejs学习笔记的文章,着实有点名不副实,当然,这篇可能还是要继续走着离主线越走越远的路子,从简短的介绍什么是Nodejs,到如何寻找一个可以调试的Nodejs ...

  7. Nodejs学习笔记(六)--- Node.js + Express 构建网站预备知识

    目录 前言 新建express项目并自定义路由规则 如何提取页面中的公共部分? 如何提交表单并接收参数? GET 方式 POST 方式 如何字符串加密? 如何使用session? 如何使用cookie ...

  8. Linux 入门笔记

    一开始对linux总有些抵触,黑黑的命令框不知道如何下手,这次因为工作交接的缘故需要负责之前同事的Node后端部分,node,redis这些都是部署在Linux上的,看了几次运维的同学噼里啪啦的敲命令 ...

  9. Nodejs学习笔记(六)—Node.js + Express 构建网站预备知识

    前言 前面经过五篇Node.js的学习,基本可以开始动手构建一个网站应用了,先用这一篇了解一些构建网站的知识! 主要是些基础的东西... 如何去创建路由规则.如何去提交表单并接收表单项的值.如何去给密 ...

随机推荐

  1. C# 后台调用script使用类

    在网站的开发的时候,总是会用到一些前台的提示的script的代码,从项目中整理了一份常用的方法. public class Jscript { public Jscript() { // // TOD ...

  2. UVA 1374 Power Calculus

    题意: 给出m,问对n最少进行几次操作.n初始为1,能得到m.操作1位将n平方.操作2为将n除以之前出现的n值中的任意一个. 分析: 其实是关于指数的操作,即从1到m最少的步数.我们可以先确定最少步数 ...

  3. js callback函数

    A callback is a function that is passed as an argument to another function and is executed after its ...

  4. Oracle 12c多租户架构浅析

    Oracle数据库12c的一大创新即是其采用的多租户架构.对于多租户这项新功能,业内的评价褒贬不一.有的声音认为,这项功能的用处不是特别大,但在某些场景或特定的环境下,多租户依然有它的用处.其最大的用 ...

  5. DIR和dirent结构体

    DIR结构体类似于FILE,是一个内部结构 struct __dirstream { void *__fd; char *__data; int __entry_data; char *__ptr; ...

  6. 四条命令搞定mysql主从

    一 . 环境准备 先上拓扑图

  7. Linux 计算某文件夹下的所有文件的md5值

    使用find 命令 find /root -type f -print0 |xargs -0 md5sum >a.md5 校验的话 md5sum -c a.md5

  8. python 通过ntlm验证下载文件

    最近使用python实现一个小工具,需要从网站下载文件,下载时服务端需要进行ntlm验证,否则返回401错误响应.经研究 requests库配合 requests-ntlm 可以解决这个问题. ntl ...

  9. keil MDK编译器(V4.01)与H-JTAG的问题

    前一阵子转投到MDK下面做开发,因为公司以前都用h-jtag做下载仿真工具,用的h-jtag版本为V0.9,我拿以前在ads1.2中编译成功的程序,稍作修改,在mdk下编译成功,仿真也没有问题,但下载 ...

  10. 面向连接的socket数据处理过程以及非阻塞connect问题

    对于面向连接的socket类型(SOCK_STREAM,SOCK_SEQPACKET)在读写数据之前必须建立连接,首先服务器端socket必须在一个客户端知道的地址进行监听,也就是创建socket之后 ...