node.js学习笔记--day1

今天第一天学习node.js

下面记录下,node.js的学习

一、node.js的介绍

node.js的特点:单线程、异步、事件驱动。

            优点:开发效率高(优化量少),性能高,应用范围广(electron框架--win8以上支持)

            缺点:新,用的人少,中间件少,IDE不完善

劣势和解决:

 1.默认不支持多核,用cluster可以解决

 2.默认不支持服务器集群,node-http-proxy可以解决

 3.使用nginx做负载均衡,静态由nginx处理,动态由node.js处理

 4.forever或node-cluster实现难以恢复

框架比较

express:完善,稳定,文档全,社区大

koa:es6开发,正在完善中

Hapi:复杂,适合大型项目

二、安装node.js

下载地址:http://nodejs.cn/

安装完毕后测试

1.打开dos窗口。步骤:win-输入cmd回车

2.输入npm(window下node.js是自带npm的;linux下npm需另行安装)

查看npm的版本 npm -v

查看nodejs的版本  node -v

三、写Hello World

1.新建个js文件,命名为node_day1.js.编码格式为utf-8

2.在node_day1.js中 输入console.log("hello world");

3.在node_day1.js 文件目录窗口,按住,shift键+右击鼠标--选择"在此处打开命令窗口"

4.在命令窗口输入 node  node_day1.js(文件名) 回车,运行完成!

停止运行 ctrl+c

服务器端写法:

 1 //定义http对象
 2 var http = require("http");
 3 //http创建了一个web服务,服务方法里带两个对象,request代表用户向浏览器发出的请求,response代表服务器向浏览器返回的对象
 4 http.createServer(function(request,response){
 5   //写http协议头
 6     response.writeHead(200,{"Content-Type":"text/html;charset=urf-8"});
 7        //清除第二次访问
 8     if(request.url!=="/favicon.ico"){
 9        console.log("访问");
10        response.write("hello world");
11        response.end("结束");//不写没有http协议尾,写了产生两次访问
12     }
13 }).listen(8000);//监听8000端口
14 console.log("Server running at http://127.0.0.1:8000/");

最后输入的即一个访问。

另,今天学的有点多,貌似好多东西学的不精。明天专门研究下htpp协议。

原文地址:https://www.cnblogs.com/jolee/p/5971060.html