有关于基础知识,总结的比较好的文章:
https://cnodejs.org/topic/551200e6d792542a29789a43
今天安装express遇到问题:
真是一个低阶的错误 啊!习惯性的加了分号
====================================================下面是正题===================================================
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('<h1>Node.js</h1>');
res.end('<p>Hello word!</p>');//end表示结束并发送
}).listen(3000);
console.log('HTTP Server is listening at port 3000');
运行结果:
===================================================================================
最后来几个常用命令:
- //1.下载软件
- wget http://nodejs.org/dist/v0.10.21/node-v0.10.21-linux-x86.tar.gz
- //2.解压文件
- tar xvf node-v0.10.21-linux-x86.tar.gz
- //3.配置环境变量 '/etc/profile'对所有用户有效vi .bashrc只对当前用户有效
- vi /etc/profile //在/etc/profile尾部加下入面两句话
- " export PATH=/root/node-v0.10.21/bin:$PATH "
- " export NODE_PATH=/root/node-v0.10.21/lib/node_modules "
- source /etc/profile
- //4.配置全局模块目录和缓存目录(缓存目录没有需要单建node_cache)
- npm config set prefix "/root/node-v0.10.21"
- npm config set cache "/root/node-v0.10.21/node_cache"
- //5.安装express框架,并查看node、npm、express版本号
- npm install -g express
- node --version //v0.10.21
- npm --version //v1.3.11
- express --version //3.4.2
有关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
这样就可以在浏览器中进行断点调试了