node搭建服务器详解及模块化
来源:互联网 发布:幻 游戏 知乎 编辑:程序博客网 时间:2024/06/05 19:32
一、server
一个简单的服务器
>
var http = require(“http”); //引入http模块;
http.createServer(function(req,res){ //req:request 请求;res:response 响应;
console.log(req);
}).listen(8080,function{
console.log(“OK”)
});
1、req
解析路径
var url =require(‘url’);
地址栏:http://localhost:8080/index.js?user=ddtx&age=22
//req.url=/index/index.js?user=yu&age=10;
var urlObj = url.parse(res.url);
//urlObj = (parthname:/index/index.js,query:{user;’yu’,age;10}}parse:网络路径解析为对象模式。
- query:是一个对象,装着查询字符串转化后的对象。
- pathname:纯路径,请求的根目录。
2、res
- 设置响应头
res.writeHeader(状态码,短语,{名:值})
res.setHeader(名,值)
res.statusCode=状态码
* write
响应数据,但是不断开连接
* end
响应数据,断开连接
3.1、设置响应头的方法:
res.writeHeader(状态码,短语,{名:值})
res.setHeader(名,值)
3.2、设置状态码的方法:
res.statusCode=状态码
3.3、解析路径使用的模块:
var url=require("url"); var urlObj = url.parse(req.url);
二、module 模块
1、导出
exports 只能导出对象
module.exports 可以是任何数据类型,exports能做到的,module.exports都可以实现
2、导入
require();
2.1、require 机制
优先去缓存中查找如果没有查到才去磁盘上查找,包只从磁盘加载一次
2.2、 node 遵循是 common.js规范
3.1、为什么模块化开发?
为了让node.js的文件可以相互调用。
3.2、什么是模块化?
每个js都是一个模块。
3.3、如何使用模块?
一个文件暴露 exports
一个文件引用 require
3.4、exports和module.exports的区别?
exports 只能导出object对象,module.exports 可以使任何数据类型。
3.5、使用模块的好处?
封装代码,复用性好,扩展性好,可维护性好
3.6、require载入模块的机制?
优先去缓存中查找如果没有查到才去磁盘上查找,包只从磁盘加载一次
3.7、模块的分类?
核心模块和文件模块
三、fs
异步和同步的区别?
1、官方已建议采用异步的方式
2、异步的优点:后面的代码会尽早的执行,程序执行效能比较高
3、同步的优点:编程简单,对程序员的思维要求比较低
4、异步的缺点:程序员编程思维要求高,出错容易,调试困难
5、同步的缺点:代码执行效率低,在大规模访问情况下,整个系统的响应速度低
异步的特点?
1.具有事件和回调函数
2.只有事件发生回调函数才执行。
同步的特点?
1.没有回调函数,也没有事件。
2.没有按照行号一行一行执行。
四、包和模块的区别?
1、包相关
- 包可以有多个模块,包必须有package.json。
- 如何确定一个包:package.json中有name 和 version属性
- require(“包的路径”);package.json中实际执行的是main指定的文件
2、模块是一个独立的js文件。
实例:
- 点菜
- 做菜
- 送菜
- 结账
js是单线程的,有事件循环和事件队列
服务员是主线程,点菜就举手,看到举手后就下单,下单后马上做饭,送完饭才会去给下一个顾客服务
五、Buffer
概述
Buffer(缓存区),JavaScript语言自身只有字符串数据类型。没有二进制数据类型操作操作磁盘数据等操作必须使用二进制数据
node.js中处理I/O操作中移动数据时,就有可能使用Buffer库,不需要使用require()获得buffer类
操作
创建
new buffer(size)
new Buffer(str[,encoding])
转化为字符串
buf.toString([encoding[,start[,end]]])
填充
buf.fill(string) 通常用来做初始化
- node搭建服务器详解及模块化
- Node.js入门,如何搭建服务器,及Express环境搭建
- Node.js搭建服务器
- Node搭建本地服务器
- node.js搭建服务器
- 搭建本地node服务器
- node搭建本地服务器
- node.js搭建服务器
- centos 搭建node服务器
- Node 搭建https服务器
- Git本地服务器搭建及使用详解
- Node.js服务器环境搭建
- Ubunut服务器搭建Node服务
- 用node.js搭建服务器
- 原生node.js服务器搭建
- 使用node.js搭建服务器
- Node.js快速搭建服务器
- node+express web服务器搭建
- 5.K-means 聚类算法
- Python之if判断语句
- mybatis逆向工程 去除表字段前缀 匹配所有表名
- 求积分 [matlab]
- java高效 的判断数组中是否包含特定值
- node搭建服务器详解及模块化
- Python-dict
- bzoj1316 树上的询问(多个定值树链询问)
- QT基础图形的绘制
- xml文件--四种解析方式的比较
- JS随机色-给你五颜六色
- 小时候常用的Windows"画图"没了!然而你真的会用吗?
- 6 DBSCAN 密度聚类算法
- 项目中的sql语句涉及到取集合时(即in(...))的用法foreach