A-A+

nodejs笔记

2016年09月15日 nodejs 暂无评论 阅读 183 次
/*
 *******module****
 */
var a=100;  //一个文件是一个模块,a属于模块下的变量
global.a=200;
console.log(a); //100
console.log(global.a); //200


//模块加载
//require('模块')

require('./2.js');
require('e:/www/study/nodejs/module/2.js');
require('2.js');// 报错 .加载node中的核心模块,或者node_modules

/*
 *1.首先按照加载的模块的文件名进行查找,先找到2的文件
 * 2.如果没有找到,只在模块文件名称后加上.js的后缀,进行查找
 * 3.如果还没有找到,则会在文件名称后面加上json后缀,进行查找
 * 4.如果还没有,则会    .node后缀
 *文件名称->.js->.json->.node->报错
 */

require('./2');

/*
 *在一个模块中通过var定义的变量,期作用域范围是当前模块,外部不能直接的访问,
 * 如果我们想一个模块能够访问另一个模块中定义的变量,可以:
 * 1.把变量作为global对象的一个属性,但是这样的做法不推荐
 * 2.使用模块对象 module
 */
var m3= require('./3');  //返回值是 加载模块中的module.exports
console.log(a); //报错

console.log(module);
console.log(m3);

//__filename:当前文件被江西过后的绝对路径
console.log(__filename);

//__dirname :当前执行脚本所在目录的目录名。
console.log(__dirname);

setInterval(function(){
    var d=new Date();
    console.log("现在是"+ d.getSeconds());
},1000);

//process 全部对象 进程对象

console.log(process);
console.log(global.process);

console.log(process.argv);
console.log(process.env)

console.log(process.pid);
console.log(process.title);
console.log(process.arch);

function log(data){
    process.stdout.write(data); //输出流
}
log('aa');


//默认,输入流是关闭的
process.stdin.resume();
//用于监听用户的输入数据
process.stdin.on('data',function(chunk){
    console.log('用户输入了:'+chunk)
});

var a, b;

process.stdout.write("清输入a的值"); //输出流
process.stdin.on('data', function (chunk) {
    if (!a) {
        a = Number(chunk);
        process.stdout.write("清输入b的值"); //输出流
    } else {
        b = Number(chunk);
        process.stdout.write("a+b值为" + (a + b)); //输出流
    }
});

var a=88;
global.a=99;

/*
 *module: 保存提供和当前模块有关的一些信息
 *       子对象 exports对象
 *      通过这个对象把一个模块中的局部变量对象进行提供访问
 */

console.log(module);

module.exports.a = 66;

/*
 *在模块作用域,还有一个内置的模块对象,exports,其实是module.exports
 * 上面的赋值 等于 下面
 */
exports.a = 66;
console.log(module.exports === exports);

module.exports = [1, 2, 3]; //exports 和  module.exports 的指向关系已经断开,不推荐
exports = [1, 2, 3];  //exports 和  module.exports 的指向关系已经断开,不推荐
exports.a = 200;  //不起作用

/*
 *******Buffer****
 */

/*
 Buffer类
 用户操作二进制数据流
 */

//new Buffer(size);size[number],创建一个Buffer对象,并为这个对象分配一个大小
//当我们为一个Buffer对象非配空间大小以后,其长度是固定,不能更改

var bf= new Buffer(5);
console.log(bf);
bf[1]=10;
console.log(bf);
//
//encoding String类型, 可选参数, 默认: 'utf8'
//start Number类型, 可选参数, 默认: 0
//end Number类型, 可选参数, 默认: buffer.length

//new Buffer(array);
var bf = new Buffer([1,2,3]);
console.log(bf);
bf[10]=10;
console.log(bf);

//new Buffer(string,[encoding]);
var bf = new Buffer("miaov",'utf-8');
console.log(bf);

for(var i=0;i<bf.length;i++){
   // console.log(bf[i].toString(16));
    console.log(String.fromCharCode(bf[i]))
}

var str1 = 'miaov';
var bf1=new Buffer(str1);
console.log(str1.length);
console.log(bf1.length);

var str2 = '秒味';
var bf2=new Buffer(str2);
console.log(str2.length);
console.log(bf2.length);


var str3 = 'miaov';
var bf3=new Buffer(str3);

bf3.write(str3);
console.log(bf3);

var bf3  = new Buffer(3);
console.log(bf3);

bf3.write(str3,1,3);
console.log(bf3);


var bf4=new Buffer('miaov');
console.log(bf4.toString());
console.log(bf4.toString('utf-8',1,3));

var bf5= new Buffer('秒味');
console.log(bf5);
console.log(bf5.toString('utf-8',1));

console.log(bf5.toJSON());

var bf6 =bf4.slice(2);
bf6[0]=2;
console.log(bf6);
console.log(bf4);


var bf4=new Buffer('miaov');
var bf7 = new Buffer(10);
bf4.copy(bf7);
console.log(bf7);
bf4.copy(bf7,1);

console.log(bf7);
bf4[0]=2;
console.log(bf7);
console.log(bf4);

console.log(Buffer.isEncoding('utf-8'))
var arr=[1,2,3];
var bf = new Buffer(10);
console.log(Buffer.isBuffer(arr));
console.log(Buffer.isBuffer(bf));

var str= 'miaov';
console.log(str.length);
console.log(Buffer.byteLength(str));

var str2= '秒味';
console.log(str2.length);
console.log(Buffer.byteLength(str2));

var list= [new Buffer(str),new Buffer(str2)];
console.log(list);

var bf= Buffer.concat(list,11);
console.log(bf);

process.stdout.write('清输入内容:');
process.stdin.resume();
process.stdin.on('data',function(chunk){
    console.log(chunk);
    console.log(chunk.toString());
});

/*
*
*FileSystem
 */

//fs模块

var fs =require('fs');

/*
 fs.open(path,flags.[mode],callback)
 path:要打开的文件的路径
 flags:打开文件的方式 读/写
 mode:设置文件的模式 读/写/执行  4/2/1
 callback:回调
 err:文件打开失败的错误保存在err里面,如果成功,errwei null
 fd:被打开的文件的标示.和 定时器标示相似 //再次打开时fd会累加
 */
fs.open('1','r',function(err,fd){
    console.log(err);
    console.log(fd);
    if(err){
        console.log("文件打开失败!")
    }else{
        console.log('文件开成功');
        console.log(fd)
    }
});

//同步异步
fs.open('1','r',function(err,fd){
    console.log(err);
});
console.log("ok");

var fd = fs.openSync('1','r');
console.log(fd);

 

标签:

给我留言

Copyright © web前端技术开发个人博客 保留所有权利  京ICP备14060653号 Theme  Ality

用户登录