node系列之(一)——windows系统下node.js的原理浅析

本文是看到一篇文章,感觉写得特别好,在此并加上自己理解,欢迎各位大佬指导纠正~

1. 什么是Node.js?

  • Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。
  • Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。
  • Node.js 的包管理器 npm,成为世界上最大的开放源代码的生态系统。
  • 淘宝镜像网站:http://npm.taobao.org/
	npm install -g cnpm --registry=https://registry.npm.taobao.org

2. php 和 node.js的区别

php 和 node.js 都是后端语言,php是做服务器的

  • php
    • 运行在apache环境下;
    • 可以用php代码来操作mysql;
    • 这所有的操作在windows系统环境下。
    • 语法:php语法
  • node.js
    • 运行在node服务器下, 等同于php运行在apache环境下;
    • 可以用node代码来操作mysql,也可以运行在windows系统环境下;
    • 性能:速度是php速度的86倍。
    • 语法:ECMAScript的语法(没有BOM,没有DOM),简称 js 的语法。

3. node选择 js 语言,原因?

场景:某位大佬需要做一个服务器,需求是有异步、有事件。
故他要选择什么编程语言?----------->
C,C++之类的语言不满足需求,发现了js语言可以满足他的需求,js语言的特点:

  • 单线程异步执行(模拟了多线程);
  • 事件处理机制;
    但是最大的问题是js是脚本语言,不是服务器语言,故他作了一个决定:要用js写一门语言,为了做他的服务器。因此node语言就出现了。(这里要搞清楚,node不是一个框架,它就是一门语言)

4. node的运行

  • 浏览器(无),在node环境中:
  • a. 安装了Node;
  • b. 通过node 的命令执行;
  • c. 在指定的平台执行:
  •  	运行在windows的命令提示符中;
      	linux的linux命令提示符中;
     	 MAC的终端中;
     	git Bash中;
     	在某些编辑器模拟的终端中
    
    nodejs语法
    因为node不是在浏览器中运行,所以不受浏览器限制,故不用担心浏览器对ES6的支持情况,即node全面支持除了ES6提供的模块化的语法之外的其他语法,
    **ES6提供的模块化的语法:**import,export(即这两个node是不支持的,但是浏览器支持)

5. Node.js可以做什么?

  • Node.js 可以解析JS代码(没有浏览器安全级别的限制)提供很多系统级别的API,如:
  • 文件的读写
  • 进程的管理
  • 网络通信

6. 基于Node的工具或者框架

  • Node-Webkit:基于node的webkit的内核
  • NodeOS:基于node的操作系统
  • Express:基于node的框架
  • Jade:模板
  • EJS:模板
  • Forever:负载均衡
  • PM2:负载均衡
  • Log.io:浏览器打印各种输出日志,报错等
  • Grunt、Gulp、Webpack:前端工程化工具
  • Mocha、Karma:前端测试工具

7. 学习node.js的网站

  • node官网:https://nodejs.org/en/ -------下载node,官方API,更新日志,发布的动态
  • npm官网:https://www.npmjs.com/search?q= -------可以搜索你需要的模块,模块管理、组件安装
  • github:https://github.com/search?utf8=%E2%9C%93&q=nodejs ----源代码
  • 国外技术博客:http://stackoverflow.com/questions -----使用nodejs遇到的问题
  • 国内的技术博客:https://segmentfault.com/ -----遇到的问题

8. 安装

官网:https://nodejs.org/
这里说一下版本号的含义:

  • 偶数位为稳定版本:v6.8.x v6.6.x v6.4.x
  • 基数位为非稳定版本:v6.9.x v6.7.x v6.5.x

9. (用node开启服务器)搭建第一个WEB服务器

  • 查看端口被占用 8080, win+R打开命令行窗口,查看完之后在任务管理器中消除掉即可
	netstat -ano|findstr "8080" 
  • 本地创建一个文件server.js,代码采用es6编写
	const http = require("http");
	const homename = "127.0.0.1";
	const port = 3000;
	const server = http.createServer((req,res)=>{
	res.statusCode = 200;
	res.setHeader("Content-Type","text/plain");
	res.end("hello world");
	});

	server.listen(port,hostname,()=>{
	console.log(`server running at http://${hostname}:${port}/`);
	})
  • es5的编写方法
	var http = require('http');
	http.createServer(function (request, response) {

	// 发送 HTTP 头部 
	// HTTP 状态值: 200 : OK
	// 内容类型: text/plain
	response.writeHead(200, {'Content-Type': 'text/plain'});

	// 发送响应数据 "Hello World"
	response.end('Hello World\n');
	}).listen(8888);

	// 终端打印如下信息
	console.log('Server running at http://127.0.0.1:8888/');

原文链接:https://blog.csdn.net/a331790021/article/details/75661785

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值