
Node.js
Bright's Dream
计算机专业本科生,web技术爱好者
展开
-
MongoDB简介
简介MongoDB是一个开源的文档数据库,提供了高性能、高可用性、自动调节的能力。文档数据库MongoDB中的一项纪录是一个文档,它是一个由一系列键值对组成的数据结构。MongoDB文档和JSON对象很像,对应字段的值可以包括其他文档、数组以及文档的数组。一个典型的文档结构如下:{Name: "sue",Age: 26,Status: "A",Groups...翻译 2019-03-14 10:34:01 · 155 阅读 · 0 评论 -
nodejs使用Buffer对象进行base64的编码和解码
编码流程:先将待编码的字符串转成Buffer对象,然后将Buffer中的内容用Base64编码导出编码后的base64字符串代码:let str = "我是待编码的字符串"console.log(str) // 输出: 我是待编码的字符串let buffer = Buffer.from(str, 'utf-8')var base64Str = buffer.toString('ba...原创 2019-03-30 11:31:26 · 26308 阅读 · 0 评论 -
基于Promise/A规范实现Promise,采用ES5语法
前言Promise是异步操作中最常用的一种模式,这篇文章我们探讨一下如何基于Promise/A规范实现一个Promise,完整实现采用ES5语法,运行环境为Node.js,使用process.nextTick实现推迟then指定的回调函数的执行。简化后的Promise/A规范查阅了一下Promise/A规范,总结出来了一下几个要求,Promise的功能基于以下几个要求来实现使用new P...原创 2019-03-23 18:26:31 · 698 阅读 · 0 评论 -
Web安全的攻与防——XSS
1 XSS攻击XSS攻击,指黑客通过“HTML”注入篡改了网页,插入了恶意的脚本,从而在用户浏览网页时,控制用户浏览器的一种攻击行为。接下来通过一个简单的示例展示XSS攻击的一种方式,服务器使用nodejs假设我的web服务器上提供了这样一个网页,读取url中用户提交的名字,然后输出到页面中var server = http .createServer(function(req, re...原创 2019-03-31 12:03:40 · 257 阅读 · 0 评论 -
Nodejs中的事件循环、定时器、nextTick()以及与EventEmitter的关系详解
参考资料:The Node.js Event Loop, Timers, and process.nextTick()什么是事件循环?事件循环允许nodejs完成非阻塞的IO操作(尽管JavaScript是单线程的)。简单来说,在nodejs中,遇到IO操作或者网络连接等阻塞性的行为的时候,将这个操作交给nodejs底层的线程池去处理,而不会阻塞主线程。当线程池中的任务完成之后,会将结果和回...原创 2019-04-10 14:24:37 · 527 阅读 · 0 评论 -
node js实现文件夹的复制、清除
let fs = require("fs");// 将将源文件路劲拷贝到目的路劲function cpyFile(target, source) { let sdata = fs.readFileSync(source, { flag: "r" }); fs.writeFileSync(target, sdata, { flag: "w" });}// 递归删除某一个文件夹下的...原创 2019-04-06 11:59:27 · 448 阅读 · 0 评论 -
TypeScript 装饰器(decorators)
介绍类似与Java中的注解,可以用于类、域、以及方法或者方法的参数上。在typescript中目前是一项实验性的特性,通过修改配置文件支持:{ "compilerOptions":{ "experimentalDecorators": true }}装饰器使用装饰器使用@expression这种形式,expression求值后必须为一个函数。也就是说,@后面可以接一个表达式,...原创 2019-04-10 17:44:09 · 598 阅读 · 0 评论 -
Nodejs中复制文件的四种方法
1 copyFilefs.copyFile(src, dest[, flags], callback)Node v8.5.0以后可用,用法如下:fs.copyFile('./src/index.js','./dist/index.js',function(err){ if(err) console.log('something wrong was happened') else co...原创 2019-04-06 17:00:32 · 17204 阅读 · 0 评论 -
在centos7中搭建开发环境并编译nodejs码源
1 安装gityum install -y git如果提示没有权限则使用su切换至管理员权限。2 安装编译器nodejs目前的要求如下:gcc and g++ 4.9.4 or newer, orclang and clang++ 3.4.2 or newer (macOS: latest Xcode Command Line Tools)Python 2.7Python ...原创 2019-04-07 08:51:40 · 371 阅读 · 0 评论