如何系统的学习nodejs
想要系统的学习node, 去Node的官网看doc把, 有能力的话一定要看英文原版, 把node几个核心模块的用法学会了, 再尝试用node去实现一个WebApp, 比如聊天室啊, blog之类的. 那么差不多你就入门了, 另外书的话, 推荐 @朴灵的[深入浅出Node.js] .
这里推荐一个taobao前端写的Node的入门教程 七天学会NodeJS.差不多看完LZ就该明白怎么学了.
nodejs初学相关依赖及配置安装
nodejs官网:
nvm:
Commonjs:
安装node自己操作
1,新建一个hello文件夹,下新建一个index.js文件,内容输入:
终端:cd 到hello文件夹,输入:
终端输出:
以上就是简单运行node
hello文件夹下新建个module.js文件输入:
终端运行:node module.js
首先通过npm 安装第三方包,比如安装request包:
安装完成后 ,hello文件夹下新建个module_2.js文件输入:
终端运行:node module_2.js
在hello文件夹下新建个src文件夹,下再建个greeting.js。输入:
然后,在hello文件夹下新建个module_3.js。输入:
终端运行: node module_3.js
常用命令可参考:
另:nrm是专门用来管理和快速切换私人配置的registry
参考:
怎么从零开始学习nodejs
首先必须明确两点: 异步事件驱动特性不是nodejs的,而是js的。 js是一门语言,一门真正的编程语言。 只是那些教程的代码例子使用了浏览器而已,一般也是在chrome的控制台里面,而不是在nodejs的命令行里。这些都不影响学习js。
node.js会很难学吗?
node里的js,和前端用的js不一样。。。。前端用的JS,俗称JAVASCRIPT1.0,正规名称是ECMAscript3,而node上用的JS,是ECMAscript6。。
尽管都叫ECMAscript,但相比之下,6和3几乎可以看成两门不同的语言。。3的语法在6中都有,但大概只有6语法总量的三分之一左右。。。另外三分之二,在3中是没有的。。3是基于对象的,而6是面向对象的。。比如6中有类,有lambda表达式,还有静态。。通过学习3,是根本不会涉及这些概念的。。
如果以3作为标准JS的话,那么6只有三分像JS,而七分像C#。。对于前端来讲,限于基础不足,NODE会显得非常难学。。。如果之前没学过C#或者JAVA,其实很难平滑过渡到NODE。。。比如下面这是一个类,你会觉得它是你所认为的JS代码?
class BaseResult{
constructor(code,msg,data){
this.code = code;
this.msg = msg;
***.data = data;
}
setCode(code){
this.code = code;
}
getCode(){
return this.code;
}
setMsg(msg){
this.msg = msg;
}
getMsg(){
return this.msg;
}
setData(data){
***.data = data;
}
getData(){
return ***.data;
}
getRes(){
return {\’code\’:this.code,\’msg\’:this.msg,\’data\’:***.data};
}
}
const SUCCESS = new BaseResult(0,\’成功\’,{a:10,b:[{c:10,d:20},{e:30,f:40}]});
console.log(SUCCESS);
所以如果你目前只是学习前端,NODE可以暂时跳过,因为你根本学不会,即便自己觉得会了,到了做项目,你就明白自己根本不是真会,不理解面向对象,根本做不了完整的后端项目。。。要想转到后端,面向对象的ES6是根本跳不过去的
如果将来有机会学学C#或者JAVA,养成了面向对象思想,再学NODE就会变得非常平滑。。
怎么学习nodejs websocket
NodeJS貌似在一直升温。的确,从去年就一直开始关注NodeJS了,那个时候还是吴玺喆同学和我谈起这个事情~~~回头我就算变扫了一下,无非就是在服务器端运行的JS而已。使用JavaScript作为指令调用底层的C++,这个思维模式还是挺不错的,并且在服务器端执行的效果也非常理想。那个时候想养肥了再看看,结果不到半年时间NodeJs已经有了飞速的发展,各方面的组件,各方面的社区文章介绍都已经非常全面了。NodeJS并且已经退出了Windows版本的安装程序。极大的方便了开发者(之前是在Ubuntu环境下部署的)。
webSocket 是一个非常不错特性,与其说是Html5的功能,不如说是浏览器支持的功能。Html5只是一个规范草案,添加了canvas,header,footer,nav,silder等一系列更加优化的语义标签,而Geolocation,webSocket,localStore等都是浏览器厂商支持的结果。(概念不要混淆哦)正好趁着去学习的时间,做了一个NodeJS与webSocket的小例子。拿出来和各位共享一下。
webSocket 是 Html5 的一种新的协议。它实现了浏览器与服务器的双向通讯。webSocket API 中,浏览器和服务器端只需要通过一个握手的动作,便能形成浏览器与客户端之间的快速双向通道,使得数据可以快速的双向传播。
通过一次简单的握手,建立了客户端和服务器端的联系之后,服务器便可以主动推送信息给客户端,而不需要客户端的反复轮询请求。在之前已经有谷歌的工程师尝试使用iframe来实现次功能,具体细节这里就不谈了,请各位自行谷歌。
webSocket 服务器商用已经很多了,这里不用 php,java 而是使用最近热得发烫的 NodeJs 来作为案例解析。
安装了NodeJS之后,我们可以通过一行简单的插件命令来安装 socket 模块。
npm install socket
然后引入包和启动服务器代码。
var http = require(\’http\’),
io = require(\’socket.io\’),
fs = require(\’fs\’);
//配置
var config = {
port : 8888
}
//创建服务器,监听端口。
http = http.createServer(handler);
http.listen(config.port);
//创建webscoket监听服务器
io = io.listen(http);
function handler(req, res) {
fs.readFile(__dirname+\’/client.html\’,
function(err, data){
req.setEncoding(encoding=\”utf8\”);
res.writeHead(200);
res.end(data);
});
}
io.sockets.on(\’connection\’,function(socket){
//定义事件
socket.on(\’msg\’,function(data){
socket.broadcast.emit(\’user message\’,data);
});
});
然后我们来编写我们的客户端
script src=\”\”/script
script type=\”text/javascript\”
var socket = io.connect(\’\’);
//Comet
socket.on(\’user message\’, function(msg) {
msgbox(msg.msg);
});
//发送消息
function sendMsg() {
var inpt = document.getElementById(\’txtInput\’);
var str = inpt.value;
if(str.length==0){
inpt.className=\”error\”;
alert(\”请输入发送的消息内容\”);
return false;
}
inpt.className = \”\”;
msgbox(str);
//发送消息至服务器的Scoket。
socket.emit(\’msg\’, {
msg : str
});
console.log(\'[client]\’ + str);
inpt.value = \”\”;
inpt.focus();
}
以上就是核心源代码。
评论0