Node.js入门教程 第一篇 (环境配置及概念原理)

Node.js 概念

Node.js本质上是使用Google的V8引擎制作出来的服务框架。V8本身是Google为了解决Chrome浏览器的性能问题而制作的前端引擎(开源)。本身依托于浏览器引擎,这也是为什么Node.js使用的是前端的JavaScript语言编程。

V8的诞生是Google为了解决JavaScript的性能问题,用了内联缓存和隐藏类技术实现的前端引擎。V8使用C++编写,也因此V8可以在C++项目中完美兼容使用。

V8被Google使用在大多数产品中,如Chrome浏览器,安卓浏览器等。

V8引擎在不断升级,Node.js本身也在不断更新,在下载Node.js安装包时就携带对应版本的V8引擎。若需要查看V8版本,在CMD中输入:

1 node -p process.versions.v8

如需要查看Node.js的版本,输入:

1 $ node -v

Node.js基础原理

在Node.js中最主要的特性,即事件驱动与非阻塞I/O都与其底层的特殊实现有关。在Node.js的底层有一个事件轮循器(Event Loop)。每当有事件注册时,会先将事件放置到事件队列(Event Queue),并通过事件轮循器顺序执行事件队列。当轮循到一个事件时,事件轮循器会为其分配一个工作线程(Worker Threads)执行该事件,事件完成后通过执行回调(Callback)返回到事件列表并通过V8引擎传递给应用(Application)。

其详细步骤为:

1、应用层发出请求给V8

2、V8通过Node.js的中间层(Bindings)传递给底层(Libuv)

3、在Libuv层中,请求会按顺序放置在事件队列(Event Queue)

4、事件轮询器(Event Loop)依次为事件队列中的事件分配工作线程(Worker Threads)

5、工作线程完成事件,并通过执行回调(Callback)返回事件列表

6、事件的执行结果通过中间层及V8返回给应用

在应用层中,发送请求后会继续执行应用层后续代码,而不需要等待事件的完成,所以是异步处理。事件处理完成后通过回调返回到应用。整个过程只由一个主线程完成,因此不存在死锁、等待的情况。

这就是Node.js的事件驱动与I/O非阻塞的实现原理。

其中,V8是Node.js依赖的核心库,而Bindings层及Libuv层是Node.js中用C++写的原创底层。

最上层的standard library是用JavaScript写的Node.js基础库。里面有各种常用的API,如:http模块、fs模块等。我们实际中最常用的就是standard library层。

其他概念

npm是Node.js的包管理工具,可以通过npm下载已有的第三方包到自己的项目中,也可以上传自己代码给别人使用。npm会随Node.js的安装包一并安装。

查看npm版本:

1 npm -v

其他常用的npm命令:

1 npm view XX version  查看版本(如:npm view express version)
3 npm install XX --save  安装包
5 node XX.js  启动一个服务入口(如:node index.js)
7 npm run dev 启动客户端 npm run build 启动发布

REPL(交互式解释器)可以输入代码实时执行,用以测试JavaScript代码块。主要用在Linux等非图像界面服务器的代码调试场景中。

安装Node.js

1.下载node.js :https://nodejs.org/en/download/

2.安装完成后,环境变量会在安装过程中自动设置好。若使用的是zip压缩版解压的node.js,则需手动配置环境变量Path:

3.打开cmd,命令行:“node --version”检查Node.js版本,显示正确的版本号即安装成功。

4.配置npm源(重要

--全局配置切换到淘宝源(推荐此项,因为外网连接不稳定):

命令行: npm config set registry https://registry.npm.taobao.org

--全局配置切换到官方源:

命令行: npm config set registry http://www.npmjs.org

原文地址:https://www.cnblogs.com/JHelius/p/11642877.html

时间: 2024-12-22 08:20:27

Node.js入门教程 第一篇 (环境配置及概念原理)的相关文章

Node.js入门教程 第五篇 (Express框架)

Express框架 Express是适用于Node.js web的框架,提供了大量实用功能,例如路由功能及http功能. Express 框架核心特性: 可以设置中间件来响应 HTTP 请求. 定义了路由表用于执行不同的 HTTP 请求动作. 可以通过向模板传递参数来动态渲染 HTML 页面. 安装: npm install express --save 可能需要的中间件: body-parser - Node.js 中间件,用于处理 JSON, Raw, Text 和 URL 编码的数据. c

微信公众号开发入门教程第一篇

关键字:微信公众平台开发作者:方倍工作室 在这篇微信公众平台开发教程中,我们假定你已经有了PHP语言程序.MySQL数据库.计算机网络通讯.及HTTP/XML/CSS/JS等基础. 我们将使用微信公众账号方倍工作室作为讲解的例子,二维码见底部. 本系列教程将引导你完成如下任务: 创建新浪云计算平台应用 启用微信公众平台开发模式 体验常用接收消息及发送消息类型 了解数据收发原理及消息格式 第一章 申请服务器资源 创建新浪云计算应用 申请账号 我们使用SAE新浪云计算平台作为服务器资源,并且申请PH

Node.js入门教程

http://www.nodebeginner.org/index-zh-cn.html#a-basic-http-server Node入门 作者: Manuel Kiessling翻译: goddyzhao & GrayZhang & MondayChen 关于 本书致力于教会你如何用Node.js来开发应用,过程中会传授你所有所需的“高级”JavaScript知识.本书绝不是一本“Hello World”的教程. 状态 你正在阅读的已经是本书的最终版.因此,只有当进行错误更正以及针对

Node.js基础:第一篇

目录 第一章:Node.js概述 1.1-前端为什么要学习Node.js 1.2-后端开发要做什么 1.3-前端为什么选择Node.js 1.4-Node.js是什么 第二章:Node.js环境搭建 2.1-下载安装 2.2-安装常见问题 2.3-PATH环境变量 第三章:Node.js快速入门 3.1-Node.js组成 3.2-Node.js牛试小刀 3.3-Node.js全局对象global 第一章:Node.js概述 1.1-前端为什么要学习Node.js 能够和后端程序员更加紧密的配合

Node.js入门教程——如何实现文件上传功能

作者:zhanhailiang 日期:2014-11-16 本文将介绍如何使用Node.js实现文件上传功能. 1. 初始化项目信息:npm init [root@~/wade/nodejs/nodejs-upload-image-demo]# npm init This utility will walk you through creating a package.json file. It only covers the most common items, and tries to gu

Node.js 入门教程 (二):模块

由于新工作要做前端,作为前端小白而且能尽快学习,所以选择慕课网的node.js的入门教程.博客只做自己学习的记录. JavaScript缺少模块管理机制,容易出现变量被覆盖,方法被替代的情况(既被污染).特别是存在依赖关系时,容易出现错误.采用命名空间的方式,把变量和函数限制在某个特定的作用域内,人肉约定一套命名规范来限制代码,保证代码安全运行. CommonJs是一套规范,包括了modules,system,encodings,unit test等等来约定JavaScript应该怎么去组织和编

vue+mongoose+node.js项目总结第一篇_图片文件上传

一.前言 项目演示:每个新用户登录之后会有个默认的头像,用户可以根据自己选择自己的头像图片进行更改. 二.主要内容 1.需求实现的思路分析. 第一步:用户点击按钮选择图片其实是间接触发input图片选择 第二步:input表单被监听change事件 第三步:选择图片,然后将图片用canvas画在预览框处 第四步:点击“确定按钮”,请求后端接口配合云存储,将图片上传到云存储上 第五步:利用云存储器中生成的图片url地址替换掉原来的地址 2.具体实现      2.1总体思路  2.2前台实现部分

Node.js 入门教程 (三):API-准备知识

==========关于异步=========== 什么是回调? 回调是异步编程最基本的方法,比如nodejs中,需要按顺序执行异步逻辑的时候,一般采用后续传递的方式,也就是将后续逻辑封装在回调函数中作为起始函数的参数,逐层去嵌套,利用这种方式来让程序按照我们所期望的方式走完整个流程. function learn(something){    console.log(something)}function we(callback,something){    something += ' is

Vue入门教程 第一篇 (概念及初始化)

注:为了本教程的准确性,部分描述引用了官网及网络内容. 安装Vue 1.使用npm安装vue: npm install vue 2.下载使用js文件: https://vuejs.org/js/vue.min.js Vue概念 Vue (读音 /vju?/,类似于 view) 是一套用于构建用户界面的渐进式框架.与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用. Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合.另一方面,当与现代化的工具链以及各种支持类库结