标签:
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 文档 */
标签:
原文地址:http://www.cnblogs.com/sixiong/p/4916115.html