node
Fred-XU
https://www.zhihu.com/people/fredric-96
展开
-
node(邮件发送特性)
1、安装 npm install nodemailerhttps://github.com/andris9/Nodemailer2、配置发邮件的账户开启SMTP功能;3、程序样例如下:var nodemailer = require('nodemailer');var user = 'fredric@XXXX.com', password = 'XXXX';// ...原创 2015-02-12 11:41:00 · 86 阅读 · 0 评论 -
node基本理念(事件、多线程、进程)
关于node的几点理解:1、所谓的node单线程,是指node的event loop,也就是我们的业务脚本是跑在一个单线程中的,可以理解为主线程;2、若存在IO操作,例如文件、网络,是单独在线程里执行,将各种事件发送给上述的业务线程;例如业务线程里起的httpserver,会接受request、文件读取完成等事件;3、IO工作线程存在多个,具体多个取决于libuv的配置,通常为4个,在...原创 2016-01-27 16:01:00 · 220 阅读 · 0 评论 -
DoraCMS 源码知识点备注
项目需要研究了下DoraCMS这款开源CMS,真心做的不错:)。用的框架是常用的express 4 + mongoose,代码也很规范,值得学习。源码中一些涉及到的小知识点备注下:https://github.com/doramart/DoraCMS1、Robots协议 1)当搜索引擎访问到网站目录时,会判断当前是否存在Robots.txt; 2)若存在则按照该文件的要...原创 2016-08-11 17:34:00 · 409 阅读 · 0 评论 -
Node调用C/C++ DLL
采用addon方式构建一个测试dll暴露方法如下,生成DLL文件:#define API_EXPORT extern "C" _declspec(dllexport)API_EXPORT int doTest(int a, int b);编写对应的addon文件test.cc#include <node.h>#include <v8.h>#in...原创 2018-10-25 15:54:07 · 2411 阅读 · 3 评论 -
node(ActiveMq)
简单尝试了node下的ActiveMQ1、下载apache-activemq-5.9.0,执行bat文件;2、登录http://localhost:8161/admin可查看其管理后台;3、安装stomp客户端 npm install stomp-client4、修改基础代码如下:var Stomp = require('stomp-client');var readlin...原创 2016-08-18 15:02:00 · 482 阅读 · 0 评论 -
node(async原理)
node中的async是用来实现同步操作的,提供包括map、Series等方法,本文不做赘述。由于项目需要在浏览器端用了async.js,因此仔细看了下它的代码。原来,一直以为node是在服务端调用了操作系统的锁等同步机制,现在才知道并非如此。主要针对需要串行执行的函数,核心实现如下:async.eachOfSeries = function (obj, iterator, call...原创 2015-08-20 17:14:00 · 544 阅读 · 0 评论 -
mongodb(mongoose-redis-cache)
在传统的项目中,我们经常会用到缓存来优化数据库的读取,比如java中,我们利用spring的AOP能力,在读写数据库前增加对缓存的操作。在node与mongodb的项目中也仍然会存在类似问题,本文参考了mongoose-redis-cache这个插件。https://github.com/conancat/mongoose-redis-cache该插件还不太完善,但基本的思路是很简单的...原创 2015-05-21 16:41:00 · 432 阅读 · 0 评论 -
node(redis)
给出node下redis操作的简单例子:var redis = require("redis"),client = redis.createClient(6379,'127.0.0.1',{}); client.on("error", function (err) { console.log("Error " + err); }); //设置并获取key1的值...原创 2015-05-21 12:56:00 · 273 阅读 · 0 评论 -
node(thrift)
thrift是一种跨语言的RPC框架,据说uber采在node.js项目中采用thrfit后,比原有的http+json的方式提高近20倍的性能。所谓的RPC本质上就是客户端将需要调用的方法名和参数通过通信协议传递给服务端,服务端计算后将返回值同样以通信协议返回,该方法在需要实现分布式的应用系统中较常见。复杂的话,可以做成内部总线的形式。本文记录一个node.js下thrift的简单例...原创 2015-05-21 11:10:00 · 667 阅读 · 0 评论 -
mongodb(回滚)
事实上mongodb是不支持事务的,个人理解原因如下:1.避免大量对document加锁,从而影响性能,2.非关系型的数据库,从设计上就应能尽可能的比较关联复杂的多document,一个数据应能记录在一个json document中。然后实际的业务操作中,跨document的业务操作还是不可避免的,本文中给出node下的一种业务层替代方式(利用其同步模块及回调的结果),如下:export...原创 2015-04-11 16:58:00 · 1339 阅读 · 0 评论 -
node(规则引擎)
本文主要记录node的下的一个开源规则引擎nools,给出简单的实例,github地址为:https://github.com/C2FO/nools定义规则引擎(test.nools)define Param { //作为规则的输入消息 param1 : 0, note :'test for nothing', constructor : function(p1...原创 2015-02-27 11:49:00 · 1321 阅读 · 0 评论 -
node(md5)
md5是一种信息-摘要算法,即针对一段明文给出一个hash值,在密码学中最经典的用法是验证数据的完整性,因为一旦原始数据发生改变那么生成的摘要也必将不同。网络中md5可以用于用户密码的加密,即在数据库或日志的存储中密码不再以明文的形式存储而是一段md5计算过的密文,这样可以避免管理员看到密码,也加大了被破解的难度。备注:md5是不可逆,也就是说不存在解密。采用node提供的crypto...原创 2015-02-16 09:59:00 · 327 阅读 · 0 评论 -
node(websocket)
websocket原本是html5下实现长链接的一个特性,当前已被众多浏览器支持。在websocket协议中,首先通过http交换一次握手,明确将协议升级至websocket。同时建立一个TCP通道,以frame帧的方式交换数据。在node环境下基本功能实现如下:首先npm install socket.io1、app.js,初始化socket.iovar srv = htt...原创 2015-02-16 09:35:00 · 225 阅读 · 0 评论 -
jade模板引擎
jade是一种源于node的模板引擎,可以直接通过json对象渲染出html页面。本文参考《jade-源于Node.js的html模板引擎》等网络文章对其基础特性进行梳理:1、赋值#user #{name} &lt;#{email}&gt;此处#user会生成一个id为user的div,同时利用name和email进行赋值,结果为:<div id="user...原创 2015-02-15 16:39:00 · 220 阅读 · 0 评论 -
ddms(基于 Express 的表单管理系统)源码学习
ddms是基于express的一个表单管理系统,今天抽时间看了下它的代码,其实算不上源码学习,只是对它其中一些小的开发技巧做一些记录,希望以后在项目开发中能够实践下。数据层封装 模块只对外暴露model,由业务层完成具体数据操作; 利用mongoose的schema的static属性,扩展常用、基础的操作 var form = new Schema({ user: {type:...原创 2015-07-03 16:09:00 · 787 阅读 · 0 评论