码迷,mamicode.com
首页 > Web开发 > 详细

nodejs基础

时间:2015-10-28 01:23:32      阅读:286      评论:0      收藏:0      [点我收藏+]

标签:

console.log(‘%s: %d‘, ‘Hello‘, 25); //输出的是 Hello: 25

代码实时更新  D:\wamp\notejs>npm install -g supervisor 

引入
//module.js
var name;
exports.setName = function(thyName) {
 name = thyName;
};
exports.sayHello = function() {
 console.log(‘Hello ‘ + name);
};
在同一目录下创建 getmodule.js,内容是:
//getmodule.js
var myModule = require(‘./module‘);   ////这里require引入一个文件后赋值给一个变量其实 相当于上一个文件中 exports 对象给赋过来了
myModule.setName(‘BYVoid‘);
myModule.sayHello();
运行node getmodule.js,结果是:
Hello BYVoid

命令行参数数组  与PHP $argv 类似
console.log(process.argv); 
process.nextTick(callback)的功能是为事件?环设置一项任务,Node.js 会在下次事件?环调?应时调用 callback。

var util = require(‘util‘); //工具一;
util.inherits(‘函数名一‘, ‘函数名二‘) //是一个实现对象间原型继承的函数。
util.inspect(object,[showHidden],[depth],[colors]) //是一个将任意对象转换为字符串的方法,通常用于调试和错误输出。它至少接受一个参数 object的对象。


var events = require(‘events‘); //事件驱动工具二; 
var emitter = new events.EventEmitter();
emitter.on(‘someEvent‘, function(arg1, arg2) { //注册一个监听器,事件名字叫someEvent 和一个回调函数 listener
 console.log(‘listener1‘, arg1, arg2); 
});
emitter.on(‘someEvent‘, function(arg1, arg2) { //注册一个监听器,事件名字叫someEvent 和一个回调函数 listener
 console.log(‘listener2‘, arg1, arg2);
});

emitter.emit(‘someEvent‘, ‘byvoid‘, 1991); //发射 event 事件,传递参数到事件参数表 
EventEmitter.once(event, listener) 注册单次监听器最多只会触发一次,触发后解除该监听器。
EventEmitter.removeListener(event, listener)删除指定的事件,listener参数 必须是该事件已经注册过的
EventEmitter.removeAllListeners([event]) 删除所有事件的监听器,如果指定 event,则删除指定事件的所有监听器。
  

//异步  读取一个文件 
var fs = require(‘fs‘);
fs.readFile(‘index.php‘,‘UTF-8‘,function(err,data){
    if(err)
    {
      console.log(‘读取文件错误‘);
    }else{
      console.log(data);
    }
});
console.log(‘end‘);
 
//同步读取一个文件
var fs = require(‘fs‘);
var date = fs.readFileSync(‘index.php‘,‘UTF-8‘);
console.log(date);
console.log(‘end‘); 


fs.open(path, flags, [mode], [callback(err, fd)]) //参数一: 文件路径 参数二: rwa+读写模式  参数三 文件权限0666 参数四 回调函数(错误,文件句柄)
var fs = require(‘fs‘);
fs.open(‘content.txt‘, ‘r‘, function(err, fd) {
 if (err) {
 console.error(err);
 return;
 }

 var buf = new Buffer(8);
 fs.read(fd, buf, 0, 8, null, function(err, bytesRead, buffer) { //参数一: 文件句柄,参数二写入到某缓冲对象,参数三:缓冲偏移量,参数四:文件中读取长度,参数五:null是当前位置 参数六回调
         if (err) {
             console.error(err);
             return;
         } 
         console.log(‘bytesRead: ‘ + bytesRead);
         console.log(buffer);
   })
}); 


var http = require(‘http‘);
var url = require(‘url‘); //解析URL
var util = require(‘util‘);
http.createServer(function(req, res) {
 res.writeHead(200, {‘Content-Type‘: ‘text/plain‘});//。该函数在一个请求内最多只能调用一次,如果不调用,则会自动生成一个响应头。

 var str = ‘客户端请求是否已经发完complete:‘+req.complete;//客户端请求是否已经发完
     str +=‘\n HTTP  版本,通常是 1.0 或 1.1  httpVersion‘+req.httpVersion;//HTTP  版本,通常是 1.0 或 1.1 
     str += ‘\n  HTTP 请求方法 method:‘+req.method ;//HTTP 请求方法,如 GET、POST、PUT、DELETE 等
     str +=‘\n 请求路径 url:‘+req.url; //?始的请求路径,例如 /static/image/x.jpg 或 /user?name=byvoid
     str +=‘\n  请求头 headers‘+req.headers; //HTTP 请求头
     str += ‘\n HTTP连接套接字 connection:‘+req.connection ; //当前 HTTP连接套接字,为 net.Socket 的实例
     str += ‘\n   属性连接别名 socket:‘+req.socket; //connection 属性连接别名
     str += ‘\n  属性别名client:‘ + req.client; //client 属性别名
    
 res.write(‘‘+str+‘\n‘);  //向客户端发送内容。data 是一个 Buffer 或字符?,表示要发出去的内容。如果 data 是字符?,那么需要指定encoding 来说?它的编码方式,?认是 utf-8。在 response.end 调用之前,response.write 可以被多次调用。
 res.end(util.inspect(url.parse(req.url, true))); //如果不调用该函数,??端将永?处于等待状态
}).listen(3001); 


/**post数据**/
var http = require(‘http‘);
var querystring = require(‘querystring‘);
var util = require(‘util‘);
http.createServer(function(req, res) {
 var post = ‘‘;
     req.on(‘data‘, function(chunk) {  //当请求体数据到来时,该事件被触发
         post += chunk;
     });
     
     req.on(‘end‘, function() {
         post = querystring.parse(post); //解析一下post过来的数据
         res.end(util.inspect(post)); //转为字符串返回给客户端
     });
     
     req.on(‘close‘, function() { 
         res.end(util.inspect(post));
     }); 
}).listen(3000); 




//下面是一个通过 http.request 发? POST 请求的代码:
var http = require(‘http‘);
var querystring = require(‘querystring‘);
var contents = querystring.stringify({
 name: ‘byvoid‘,
 email: ‘byvoid@byvoid.com‘,
 address: ‘Zijing 2#, Tsinghua University‘,
});
var options = {
 host: ‘www.byvoid.com‘,
 path: ‘/application/node/post.php‘,
 method: ‘POST‘,
 headers: {
 ‘Content-Type‘: ‘application/x-www-form-urlencoded‘,
 ‘Content-Length‘ : contents.length
 }
};
var req = http.request(options, function(res) {
 res.setEncoding(‘utf8‘);
 res.on(‘data‘, function (data) {
 console.log(data);
 });
});
req.write(contents);
req.end();
//运行后结果如下:
/*
array(3) {
 ["name"]=>
 string(6) "byvoid"
 ["email"]=>
 string(17) "byvoid@byvoid.com"
 ["address"]=>
 string(30) "Zijing 2#, Tsinghua University"
} 
*/

//下面是一个通过 http.get 发? get 请求的代码:
var http = require(‘http‘);
var req = http.get({host: ‘www.byvoid.com‘});
req.on(‘response‘, function(res) {
 res.setEncoding(‘utf8‘);
 res.on(‘data‘, function (data) {
 console.log(data);
 });
}); 
/*
request.abort():终?正在发?的请求。
? request.setTimeout(timeout, [callback]):设置请求超时时间,timeout 为
??数。?请求超时以后,callback 将会被调用。
此外还有request.setNoDelay([noDelay])、request.setSocketKeepAlive
([enable], [initialDelay]) 等函数,具体内容请参见 Node.js 文档
*/

 

nodejs基础

标签:

原文地址:http://www.cnblogs.com/sixiong/p/4916115.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!