有关于基础知识,总结的比较好的文章:
https://cnodejs.org/topic/551200e6d792542a29789a43
真是一个低阶的错误 啊!习惯性的加了分号
====================================================下面是正题===================================================
1.node基础语法:都是亲手敲的,并且测试过没有问题,下面是app.js文件的内容
console.log("==============全局变量process介绍===========================");
console.log(process.argv);
process.stdout.write('haha!process.stdout标准输出流,write()函数提供了更底层的接口');
process.stdout.write('process.nextTick(callback)功能是为事件循环设置一项任务,node.js会在下次事件循环时调用callback');
console.log("=====================全局变量console介绍============================");
console.log("hello word!向标准输出打印字符");
console.log('byvoid%diovyb');
console.log('byvoid%diovyb',12345);
console.error('ssssssssssssssss');
console.trace("输出当前的调用栈");
console.log("================常用工具util================");
console.log("1.util.inherits");
var util = require('util');
function Base(){
this.name = 'base';//构造函数内的属性也不能被继承
this.base = 1991;
this.sayHello = function(){//构造函数内部的函数,不能被继承
console.log('Hello !'+this.name);
};
}
Base.prototype.showName = function(){//Base对象的原型函数,这样的函数可以被继承
console.log(this.name);
};
function Sub(){
// this.name = "sub";
}
console.log("=================util.inherits(sonObj,superObj)实现对象间原型继承的函数===============================");
util.inherits(Sub,Base);
var objBase = new Base();
objBase.showName();
objBase.sayHello();
console.log(objBase);
var objSub = new Sub();
objSub.showName();
//objSub.sayHello();--没有继承构造函数内的方法,所以会提示报错!
console.log(objSub);
console.log("2.util.inspect[object,[showHidden],[depth],[colors]]把任意对象转换为字符串,多用于调试和错误提示");
var util = require("util");
function person(){
this.name = "lixl";
this.toString = function(){
return this.name;
}
}
var obj = new person();
console.log(util.inspect(obj));
console.log(util.inspect(obj,true,3,true));
console.log("============================事件驱动 events============================================")
var events = require("events");
var emitter = new events.EventEmitter();
emitter.on("someEvent",function(arg1,arg2){
console.log("注册的第一个监听器",arg1,arg2,'aaaaaaaaa');
});
emitter.on("someEvent",function(arg1,arg2){
console.log("注册的第二个监听器",arg1,arg2);
});
emitter.emit("someEvent",'lixl',2013);
console.log("=============================emitter注册的特殊事件error事件================================");
var events = require("events");
var emitter = events.EventEmitter();
// emitter.emit('error');
console.log("=============================文件系统 fs================================");
var fs = require("fs");
fs.readFile("file.txt","utf-8",function(err,data){
if(err){
console.log(err);
}else{
console.log(data);
}
});
console.log("=============================HTTP服务器和客户端================================");
var http = require("http");
http.createServer(function(req,res){
res.writeHead(200,{"Content-Type":"text/html"});
res.write('
Hello word!
');//end表示结束并发送运行结果:
===================================================================================
最后来几个常用命令:
有关node调试:
一、eclipse
二、浏览器:【只能在 Chrome、Safari等 WebKit 内核的浏览器中使用,
而不支持 Firefox 或 Internet Explorer】
原因:node-inspector 使用了 WebKit Web Inspector,因此只能在 Chrome、Safari
等 WebKit 内核的浏览器中使用,而不支持 Firefox 或 Internet Explorer。
下面是具体截图:
一、eclipse调试的时候:需要主动点击nodeDebug才能开始调试,而不是传统方式
点击完后,开始调试,会出现一个新的文本文件,并且该文件只读,此时就可以给该只读文件加断点调试了:
二、浏览器调试:
需要先安装一个node-inspector
命令:npm install -g node-inspector 全局安装,因为要直接在任意命令行用,而不是针对某个应用:
安装好好需要做三件事:
1.启动要调试的js文件
2.启动node-inspector命令
3.打开浏览器访问:http://127.0.0.1:8080/debug?port=5858
这样就可以在浏览器中进行断点调试了