单线程 单进程 非阻塞 事件驱动。
句柄就是函数
事件驱动模型
事件源-》触发事件《-》监听事件程序-》事件处理程序
路径的要求不严格
node的知识点:
1. node的http模块,
var http = require('http');
http.createServer(function(req, res){
res.writeHeader(200, {'Content-Type': 'text/plain'}); //写入文件头
res.end('Hello World!'); //浏览器中的输出
}).listen('8888');
2. fs模块的方法
可以读取文件、文件夹,创建删除文件、文件夹,截取文件内容,修改权限、群组等,用的时候再看吧,这里会用到buffer,具体的不清楚呢?
读取文件模块 readFile,readFileAync
var fs = require('fs');
fs.readFile('input.txt', function(err, data){ //异步读取文件
console.log(data);
})
var data = fs.readFileAync('input.txt'); //同步读取文件
console.log(data);
fs的stream流, createReadStream(), createWriteStream()
var fs = require('fs');
var data = '';
var readStream = fs.createReadStream('input.txt'); //这个异步执行的, 按顺序放到事件执行队列中
readStream.on('data', function(chunk){
data += chunk;
})
readStream.on('end', function(){
console.log(data);
})
readStream.on('error', function(err){
console.log(err.stack);
})
var writeStream = fs.createWriteStream('input.txt');
writeStream.end();
writeStream.on('finish', function(){
console.log('写入完成');
})
writeStream.on('error', function(err){
console.log(err.stack);
})
3. buffer 理解就是一个存储类型,和Array类似,只是可以存储二进制数据,并且可以指定数据格式
4. events 对象,内部只有一个EmitterEvent方法
var events = require('events').EventEmitter;
var eventsEmitter = new events();
eventsEmitter.on('eventName', functionName);
eventsEmitter.addListener('eventName', functionName); //on 和 addListener效果是一样的
每种方法的添加事件数量默认是10个,如果超过10个会有警告,可以修改这个默认数量
eventsEmitter.setMaxListeners(21);

url.parse(string).query
|
url.parse(string).pathname |
| |
| |
------ -------------------
http://localhost:8888/start?foo=bar&hello=world
--- -----
| |
| |
querystring.parse(queryString)["foo"] |
|
querystring.parse(queryString)["hello"]
showHidden 是一个可选参数,如果值为 true,将会输出更多隐藏信息。
depth 表示最大递归的层数,如果对象很复杂,你可以指定层数以控制输出信息的多 少。如果不指定depth,默认会递归2层,指定为 null 表示将不限递归层数完整遍历对象。 如果color 值为 true,输出格式将会以ANSI 颜色编码,通常用于在终端显示更漂亮 的效果。
util.isArray(object),如果给定的参数 "object" 是一个数组返回true,否则返回false。
util.isDate(object),如果给定的参数 "object" 是一个日期返回true,否则返回false。
util.isRegExp(object),如果给定的参数 "object" 是一个正则表达式返回true,否则返回false。
util.isError(object),如果给定的参数 "object" 是一个错误对象返回true,否则返回false。
更多详情可以访问 http://nodejs.org/api/util.html 了解详细内容。
console.log('操作系统的默认临时文件夹: ', os.tmpdir());
console.log(' CPU 的字节序: ', os.endianness());
console.log('操作系统的主机名: ', os.hostname());
console.log('操作系统名: ', os.type());
console.log('操作系统名: ', os.platform());
console.log('操作系统 CPU 架构: ', os.arch());
console.log('操作系统的发行版本: ', os.release());
console.log('操作系统运行的时间,以秒为单位: ', os.uptime());
console.log('一个包含 1、5、15 分钟平均负载的数组: ', os.loadavg());
console.log('系统内存总量,单位为字节: ', os.totalmem());
console.log('操作系统空闲内存量,单位是字节: ', os.freemem());
console.log('返回一个对象数组,包含所安装的每个 CPU/内核的信息:型号、速度(单位 MHz)、时间(一个包含 user、nice、sys、idle 和 irq 所使用 CPU/内核毫秒数的对象): ', os.cpus());
console.log('获得网络接口列表: ', os.networkInterfaces());
Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具。
使用 Express 可以快速地搭建一个完整功能的网站。
Express 框架核心特性:
可以设置中间件来响应 HTTP 请求。
定义了路由表用于执行不同的 HTTP 请求动作。
可以通过向模板传递参数来动态渲染 HTML 页面。
需要结合三个中间件,分别是body-parser, cookie-parser, multerbody-parser - node.js 中间件,用于处理 JSON, Raw, Text 和 URL 编码的数据。
cookie-parser - 这就是一个解析Cookie的工具。通过req.cookies可以取到传过来的cookie,并把它们转成对象。
multer - node.js 中间件,用于处理 enctype="multipart/form-data"(设置表单的MIME编码)的表单数据。
HTTP 方法
以下为 REST 基本架构的四个方法:
GET - 用于获取数据。
PUT - 用于更新或添加数据。
DELETE - 用于删除数据。
POST - 用于添加数据
还有一个patch只更新服务器上的一个资源的一个属性
restful的思想可扩展性,并向后兼容,一般使用在url中包含版本信息的方式。
分析记录优化性能
状态码304缓存,302重定向
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步