概述
最近在刷javascript的技能,觉着nodejs是个不错的入口,作为一个.Net平台的前端工程师学习使用js开发服务端,想想都有点小激动哈哈^_^^_^。
入门
之前开发过ionic,所以对node平台并不陌生,也用过npm,感觉很方便,但是偶尔也会碰到一些问题(比如打包成安卓apk时各种报错),应该是功力不够,慢慢学习^_^。
需要区分node.js开发与浏览器的不同,node.js使用v8引擎,所以可以使用v8中的某些非标准的特性。
node.js中引用模块的函数是require,这是一种符合CommonJS规范的同步加载模块的方式。node.js平台自己提供http服务器(包含http模块),所以创建node.js程序的第一步是创建http服务,代码如下。
var http = require("http"); http.createServer(function (request, response) {
response.writeHead(200, {"Content-Type": "text/plain"});
response.end("Hello world~~");
}).listen(8888); console.log("server running at http://127.0.0.1:8888");
创建http服务
node.js中异步编程的直接体现是回调,但不是使用了回调的就异步化了。node.js缓冲区Buffer。node.js中的流Stream。
node.js中一个模块对应一个文件,模块通过exports对象暴露接口。
node.js中通过依赖注入的方式添加路由模块。
node.js中的全局对象是global,类似浏览器的window,包括__filename、__dirname、setTimeout、process等属性。
安装Express框架(跟随Express一起安装的还有body-parser、cookie-parser、multer等模块),Express框架具备中间件、路由以及动态渲染HTML页面的特征。
node.js事件驱动
node.js是单进程的,使用事件驱动的方式来处理多并发,事件驱动的本质是主循环线程加事件触发,node.js中必须阻塞的io等操作是交给线程池中的线程处理的。
node.js中间件
NPM
"npm ls g" : 查看所有全局安装的模块。