日度归档:2019年3月12日

Node.js 引入模块的方法分享


摘要:
下文通过举例的方式讲述引入模块的方法分享,如下所示:


Node.js 可通过模块系统,对外部使用node建立的文件进行相互引用,我们把此种调用方式称之为 node的模块系统。
在Node.js应用中,模块和文件是一一对应的关系,
Node.js中的文件可以是javascript、可以是JSON 、c/c++扩展产生的文件。


例:

   //1.引用外部文件方法   
   //引入外部test.js文件
   // ./ 代表当前目录
   //require引入外部接口的方法
   var test = require('./test'); 
   
   
   //调用test.js文件中的hello方法
   test.hello();
   

   //2.test.js文件中创建外部接口方法
   //exports 是模块对外公开的接口
   exports.hello = function(){
     console.log('创建外部接口!');
   }

   /*创建test.js方法2*/
   function hello(){
       console.log('创建外部接口!');
   } 
   module.exports = hello; 


模块加载顺序:
Node.js模块加载顺序类似于C语言的加载顺序
首先加载原生态模块,然后再加载文件模块

Node.js Stream(流) 简介说明


摘要:
下文讲述Node.js中Stream的用法,如下所示:


Stream是Node.js中操作流类型的对象,在Node.js中应用广泛。

Stream是一个抽象接口,在Node中主要对流数据进行 读写操作,Stream可应用于http、套接字、文件、数据方面的操作。

Stream常见的四种流操作类型,如下:
1.Readable 只读流
2.Writable 只写流
3.Duplex 可读可写流
4.Transform 当数据被写入时候,读出结果

Stream常用事件如下:
data:当存在数据可读时发生
end: 无可读数据时发生
error:当操作过程中发生错误时触发
finish:当数据被写入操作系统底层时发生


Stream举例应用

1.从文件”test.txt”中读取流Stream

    
    var fs = require("fs");
    var data = '';

    //创建可读流
    var readerStream = fs.createReadStream('test.txt');

    //设置流读取编码为 utf8。
    readerStream.setEncoding('UTF8');

    //处理流事件 --> data, end, and error
    readerStream.on('data', function(t) {
       data += t;
    });

    readerStream.on('end',function(){
       console.log(data);
    });

    readerStream.on('error', function(err){
       console.log(err.stack);
    });

     console.log("读取流操作完毕!");

2.写入流值文件test.txt

 
   var fs = require("fs");
  var data = '这是一个sqlserver blog mssql教程网';

//申请一个写入流,写入到文件 test.txt 中
var writerStream = fs.createWriteStream('test.txt');

// 使用 utf8 编码写入数据
writerStream.write(data,'UTF8');

// 标记文件末尾
writerStream.end();

// 处理流事件 --> data, end, and error
writerStream.on('finish', function() {
    console.log("写入流完成");
});

writerStream.on('error', function(err){
   console.log(err.stack);
});

console.log("流写入完毕");


3.将“读取流”写入“写入流”


 var fs = require("fs");

//新建一个读取流
var readerStream = fs.createReadStream('read.txt');

//新建一个写入流
var writerStream = fs.createWriteStream('write.txt');

//管道读写操作
//将read.txt文件内容写入至write.txt
readerStream.pipe(writerStream);

console.log("操作完毕!");

mssql sqlserver 检测限制内存对CPU是否存在影响


摘要:
下文讲述实际应用中内存不足对CPU的效率影响,如下所示:


最近有客户咨询:
“想了解内存的不足是否对CPU的效率产生相应的影响”,通过以前的经验,我觉得

当sql创建工作线程失败时,此时应为内存压力导致的CPU工作出现异常

 
     SELECT current_workers_count, scheduler_id, cpu_id
      status, is_online, failed_to_create_worker
     FROM sys.dm_os_schedulers
     WHERE status='visible online'
     GO
   

当 failed_to_create_worker 返回值不等于0时,请注意观察内存情况