初探node.js
一、定义及优势
定义:Node.js是一个基于 Chrome V8 引擎 的 JavaScript 运行时,它以事件驱动为基础实现了非阻塞模型。
优势:由于Web场景下的大多数任务(静态资源读取、数据库操作、渲染页面)都是I/O密集的,所以使用非阻塞模型就可以大大地提高CPU的利用率。
使用场景:Web Server、本地代码构建(用于编译构建前端代码)、实用工具开发。
二、成员
- CommonJs:模块规范
- global:全局对象
- process:当前执行的进程
三、CommonJS规则
- 每个文件是一个模块,有自己的作用域。
- 在模块内部module变量代表模块本身
- module.exports属性代表模块对外的接口
实例1:编写2个模块用于实践下上述的三条规则。
新建文件01_testA.js,内容如下:
const testVar = 100;
function test() {
console.log(testVar);
}
// 将变量暴露给其他模块
module.exports.var = testVar;
module.exports.fn = test;
console.log('testA executed');
再新建一个模块,创建文件01_testB.js:
// 支持js、json、node扩展名,不写依次尝试匹配。
// 若不写路径则认为是build-in模块或者各级node_modules内的第三方模块
// require特性:1、module被加载 的时候执行,加载后缓存 2、一旦出现某个模块被 循环加载,就只输出已经执行的部分,未执行的部分不会输出
const mod = require('./01_testA');
console.log(mod.var);
mod.fn();
在命令行运行01_testB.js文件,查看模块之间的调用结果,命令行输入node 01_testB.js
,结果如下:
testA executed
100
100
初探node.js的更多相关文章
- 初探 Node.js 框架:eggjs (环境搭配篇)
eggjs 是一个优秀的 Node.js 框架 概述:为什么标题上说 eggjs 是一个优秀的 Node.js 框架(可跳过)? 换言之,我们为什么选择 eggjs 进行开发而不是之前初学时使用的 E ...
- Node.js 学习资源
这篇文章编译整理自Stack Overflow的一个如何开始学习Node.js的Wiki帖,这份资源列表在SO上面浏览接近60万次,数千个收藏和顶.特意整理发布到这里,其中添加了部分中文参考资料. 学 ...
- Node.js 爬虫初探
前言 在学习慕课网视频和Cnode新手入门接触到爬虫,说是爬虫初探,其实并没有用到爬虫相关第三方类库,主要用了node.js基础模块http.网页分析工具cherrio. 使用http直接获取url路 ...
- Node.js 初探
概念 Node.js 是构建在Chrome javascript runtime之上的平台,能够很容易的构建快速的,可伸缩性的网络应用程序.Node.js使用事件驱动,非阻塞I/O 模式,这使它能够更 ...
- Node.js初探之GET方式传输
Node.js初探之GET方式传输 例子:form用GET方法向后台传东西 html文件: <form action="http://localhost:8080/aaa" ...
- Node.js系列之node.js初探
官方介绍:Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable n ...
- Node.js初探之hello world
昨天公司内部培训,主讲人王老板对Node.js评价很高,连用几个“变态”来形容,恰好今天周末,有时间来认识下Node.js,对一门新语言最好的认识,是让其输出“hello world”,今天我就利用N ...
- [转] Node.js 服务端实践之 GraphQL 初探
https://medium.com/the-graphqlhub/your-first-graphql-server-3c766ab4f0a2#.n88wyan4e 0.问题来了 DT 时代,各种业 ...
- Node.js初探之POST方式传输
小知识:POST比GET传输的数据量大很多 POST发数据--"分段" 实例: 准备一个form.html文件: <!DOCTYPE html> <html> ...
随机推荐
- 关于serviceComb中的swagger抛出NullPointerException
在使用serviceComb时, 如果抛出以下异常: org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersions > ...
- 任务12:Bind读取配置到C#实例
将json文件的配置转换成C#的实体 新建项目: Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE /* Style Definition ...
- python slice 切片
list,tuple,string,bytes对象可以进行切片处理,生成一个新的这些类的对象. 格式:li[start: stop: step] list切片: >>> li = [ ...
- 修改 jq weui cityPicker.js原来的值
1.对接后台接口,拿到返回来的值,注意数据格式要一样 var raw; $.ajax({ type: "GET", url: "/web/region/list.json ...
- PJzhang:Lucifer1993的struts-scan漏洞全量检测工具
猫宁!!! 参考链接: https://www.freebuf.com/sectool/149815.html 有关struts 2的漏洞测试工具,很多,不过有的已经很久没更新了,有的只是针对某一个s ...
- Beta版本发布!
该作业所属课程:https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2 作业地址:https://edu.cnblogs.com/c ...
- 在MacOs上安装sqlsrv Mojave - 找不到'php.h'文件
Mojave没有安装标头. 要安装标头: open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_1 ...
- js页面字段的必填验证方法
https://blog.csdn.net/fn_2015/article/details/73498462 <script type="text/javascript" s ...
- 166 Fraction to Recurring Decimal 分数到小数
给定两个整数,分别表示分数的分子和分母,返回字符串格式的小数.如果小数部分为循环小数,则将重复部分括在括号内.例如, 给出 分子 = 1, 分母 = 2,返回 "0.5". ...
- DNS练习之正向解析
配置正向解析: 主机名:sishen63 主机IP:192.168.1.63 操作系统:Red Hat Enterprise Linux Server release 6.5 (Santiago) 安 ...