nodejs基础及npm、yarn

part 1:



NodeJS是个啥?   

Node简介:

                 NodeJS是一个JavaScript服务端的语言, 基于V8引擎的一个JS服务器语言。
              Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效 , 适合高并发
              Node.js 的包管理器 npm,成为世界上最大的开放源代码的生态系统


为啥适合高并发:

                传统后台一个链接大概占用2M内存, 而nodejs不是,每个链接占用的内存大概是几十KB。nodejs的内存是动态占用的,当链接产生的时候会占用大量内存,不链接的时候,释放多余内存, 这样的模式,叫做非阻塞式。
                
                nodejs有没有缺点那? 也有,nodejs处理大量计算的时候,会很慢。

                所以,node适合的架构是啥样的那?  

                java + node 

                node负责并发处理,java负责逻辑,计算处理。
            
                所以node最适合的就是作为中间层而存在。

webserver

一个网页经历了怎样的历程才能来到我们的面前!

    




为啥要学习NodeJS

原因简单的不能再简单, 作为一名web开发人员,只知道前端的知识是不够的。

问你几个问题。

你知道数据传输后,怎么进行加密么?

什么时候用后端渲染数据,什么时候用前端渲染数据那?

你知道webserver 是什么东西么?

你知道登录注册后端如何实现么?

你知道后台开发逻辑么?

一个后端跟你疯狂BB如何优雅不失逼格的怼回去?

你知道什么是面向对象数据库么?


但是为啥选择nodejs? 

nodejs可以做的事情是:

文件的读写,
进程的管理,
网络的通信
系统级别API的调用......

当然nodejs 几乎无所不能:

node-webkit   nodeOS  Express  …..

最后的最后 node 是一个JavaScript的运行环境。

搭建nodejs环境
建立一个node服务器;


const http = require ( " http " );

var server = http . createServer (( request , response ) => {
        response . writeHead ( 200 ,{ " Content-Type " : " text/html " });
        response . write ( " hello world " );
        response . end ();
});
server . listen ( 8080 , " localhost " , () => {
        console . log ( " server is running at http://localhost:8080 " )
});


NodeJS 模块化 CommonJS

                对比编程体验:


                    

最重要的是NodeJS沿用了所有的JavaScript语法,及其规则;

COMMONJS

目前的模块化核心无外乎两个,第一个是模块的定义,另一个就是模块的引用

一.模块的定义

模块的定义非常简单 , 主要分成两种情况;
  1. module.exports定义

module.exports = 功能集合;
  1. exports定义

exports . fnName = 变量名 ;
这两个方法有啥差别那?
首先我们来看下一个简单的功能进行模块化封装,使用这两种方法的差别,现有模块 helloWorld.js 代码如下:
function hello (){
  console . log ( "hello" );
}
function world (){
  console . log ( "world" );
}
顺便一提,在CommonJS规范中,一个js文件就是一个模块。
现在,模块有了(helloworld.js),功能有了(hello 方法 , world方法),我们如何让模块暴露在nodejs中,让其可以被随心所欲的引用那?当然是用刚才的两种方法:
1.module.exports方式
module . exports = {
  hello : hello ,
  world : world
}
这种方式的优点在于可以一次性将所有模块都暴露出来。
2.exprots 方式
exports . hello = hello ;
exports . world = world;
请注意,exports不能用 exprots={}这样的方式进行模块暴露
二.模块的引用
模块的引用也非常简单,只有一种情况就是require引入。
require引用
const 模块名称 = require(路径)

引用时,有两个非常值得注意的问题
1.路径
在commonjs中路径大体上分为三个种类:
1. /   代表根目录;
2. ./  代表当前目录
3. ../ 代表返回上级目录;

2.找寻环境。
项目结构如下:
Root/
     Module/
           helloWorld.js
           Main.js


helloWorld.js 如上所述;
当 main.js 想要引用 helloWorld.js 应该如何实现?
const hw = require(“./helloWorld”);
 
Part2:

npm使用

先注册一个自己的账号。

上传自己的npm包:

npm init   

npm 添加用户

npm adduser //按照提示完成你的用户密码输入

npm publish 发布你的包到你的账号内

npm install huaizhiy 

安装你的包 , 在安装之前一定要初始化 package.json。

tip:在上传之前一定要验证你的邮箱哦。

1.yarn 是一个优秀的包管理工具

npm 是我们已知的一个插件依赖工具。 但是其复杂的配置, 缓慢的下载速度, 还有让人头疼的种种奇怪问题在开发中让人头疼,yarn的出现极大的改善了这个问题。 

首先我们来看一下yarn的官网 一只小猫   

2.yarn如何使用?
   

安装 :


指令:


依赖包安装及卸载:

yarn add [packagename] 安装一个依赖包
yarn remove [packagename] 卸载一个依赖包

当然 yarn 也支持 dev 分支安装

Yarn add [] --dev | -D

更新依赖包版本:

yarn upgrade 更新所有package.json中的依赖包;
yarn upgrade [package@version]

项目安装:

yarn init  | yarn 




3.node自动化调试工具 nodemon

安装 nodemon  yarn add nodemon

配置package.json 在json中加入scripts项;
" scripts " : {
                " start " : " nodemon index.js "
            }

查看控制台输出即可。

当然也可以使用指令直接操作:

yarn nodemon [filename]

当然nodemon也有很多高级用法 详情请查阅 nodemon


用yarn安装全局软件;

Yarn global add [filename];  




猜你喜欢

转载自blog.csdn.net/zuggs_/article/details/80756738