一、什么node.js

Node.js是JavaScript语言服务器运行环境

Node.js 就是运行服务端的 JavaScript
Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台
Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。

二、为什么要用node.js

javaScript语言本身是完善的函数语言,在前端开发时,开发人员往往写得比较随意,让人感觉JavaScript就是个“玩具语言”。无法像其他编程语言一样满足工程需要

但是,在Node环境下,通过模块化的JavaScript代码,加上函数编程,并且无需考虑浏览器兼容性问题,直接使用最新的ECMAScript 6标准可以完全满足工程上的需求

 Node.js 适合以下场景:

1、实时性应用比如在线多人协作工具网页聊天应用等。

2、以 I/O 为主的高并发应用,比如客户端提供 API,读取数据库。

3、流式应用,比如客户端经常上传文件

4、前后分离

三、node.js 中的npm

1、npm什么
npm(即 node package manager )是Node的包管理工具,能解决NodeJS代码部署上的很多问题npm里面有接近60万个别人已经写好的包,到目前为止,npm差不多收集了60万个别人写好的包,其实每个包就是一个功能,一个需求npm里面有关于创建服务器的包,启动电脑摄像头的包,如果正好我们有这些需求,那么我们就没必要自己去写代码,完全可以用别人已经写好的包

npm是随同Nodejs一起安装的包管理工具,能解决Nodejs代码部署上的很多问题常见使用场景有以下几种

允许用户从NPM服务器下载别人编写第三方包到本地使用
允许用户从NPM服务器下载安装别人编写命令行程序本地使用
允许用户自己编写的包或命令行程序上传到NPM服务器供别人使用
由于新版nodejs已经集成npm,所以之前npm也一并安装好了。同样可以通过输入

npmv ” 来测试是否成功安装

命令如下,出现版本提示表示安装成功:
在这里插入图片描述
如果安装的是旧版本npm可以很容易得通过 npm 命令升级命令如下

 c: npm install npm -g

2、npm 命令安装模块
npm 的包安装分为本地安装(local)、全局安装(global)两种,

命令如下

npm install express          //本地安装
 
npm install express -g      //全局安装

如果出现以下错误

npm err! Error: connect ECONNREFUSED 127.0.0.1:8087

解决办法为:

 $ npm config set proxy null

(1)本地安装

安装包放在 ./node_modules 下(运行 npm 命令时所在的目录),如果没有 node_modules 目录,会在当前执行 npm 命令的目录生成 node_modules 目录。
可以通过 require() 来引入本地安装的包。
(2)全局安装

安装包放在 /usr/local 下或者你 node 的安装目录。
可以直接在命令行使用
如果你希望具备两者功能,则需要两个地方安装它或使用 npm link

3、选用 cnpm

1、cnpm官方介绍是:cnpm是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读),同步频率目前为 10分钟 一次以保证尽量与官方服务同步。既然都一样,那么cnpm为什么要出现呢?

由于npmjs.org服务器在国外(即在“墙”外),国(墙)内开发者项目时候,很多“包”的下载速度极慢,在这种环境下阿里巴巴为了众多开发者的便捷便挺身而出推出了淘宝镜像(即cnpm),它把npm官方的“包”全部搬到国内,供广大开发者使用

使用淘宝镜像的命令:

npm install -g cnpm --registry=https://registry.npmmirror.com

2、安装cnpm使用命令 npm install cnpm –gregistry=https://registry.npm.taobao.org 安装完成后用 cnpm –v 查看是否安装成功

3、cnpm的使用方法和npm完全一致,只需要把npm改成cnpm即可

四、node.js 的模块化

Node应用是由模块组成,遵循的是CommonJS模块规范

1、CommonJS模块规范规范内容

 CommonJS 是一套代码规范, 目的是为了构建 JavaScript 在浏览器之外的生态系统 (服务器端, 桌面端). 

    通过该规范使JavaScript具备开发复杂应用、跨平台的能力
    
CommonJS模块规范化的内容
 (1)导出模块:moudle.exports 导出模块
   
   (2)导入模块:require('模块名称')

2、moudle对象

每个导出的模块都有一个moudle对象,该对象包含属性有:

moudle.exports表示当前模块对外输出接口,其他模块引用的是moudle.exports导出变量
exports变量:指向moudle.exports,为了操作的方便,它不能直接指向一个值
这等同在每个模块头部,有一行这样的命令。

 var exports = module.exports;

3、使用require导入模块

导入并执行一个JavaScript文件返回的是一个exports对象,若没有找到相应的对象就报错

    (1)模块输出是一个函数,则该函数输出接口不能用exports变量来导出,必须用户moudle.exports导出
    
    (2)加载规则:
    
       A、用来加载js文件默认的文件扩展名为.js
var foo = require('foo');
//  等同于var foo = require('foo.js');

B、根据参数不同格式,去不同路径查找相应的js文件

          './(../)':表示加载路径相对路径
          
          '/':表示加载路径是绝对路径
          
          既不是'./(../)'也不是'/':表示加载模式node的核心模块,在node安装路径的node_modules中
          
    (3)require内部处理流程
    
        require -->module.exports-->moudle._load

原文地址:https://blog.csdn.net/m0_63760882/article/details/130334741

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_31390.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注