一、_nodejs基本介绍

官方概念:Node.js® 是一个基于 Chrome V8 引擎 的 JavaScript 运行时

(Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.)

上面的概念中有两个特殊的名词,解释如下:

1.chrome V8引擎: chrome浏览器用来解析和执行js代码的工具;

2.运行时:理解为一个容器,用来运行代码的环境;

所以,对Node.js更通俗的解释是:一个用chrome浏览器V8引擎来跑JS代码的环境。

二、在Node环境下运行js代码

在小黑窗中直接跑代码运行这个文件

1.打开命令行工具(请注意当前所处的位置),输入命令

       2.格式: node 要执行的文件的路径

注意:node 的后面有一个空格   nodejs就是一个环境。可以跑代码的环境

三、Node.js和浏览器端的区别

1.在浏览器端

js由三部分组成:ECMAScript + BOM + DOM

2.在nodejs端

ECMAScript + 内置模块(fs, http, path,.....)。在nodejs中是没有BOM、DOM、window,但使用ECMAScript是通用的

区别

相同点:

都是可以运行js代码的容器,更严格一点说:都可以运行ECMAScript

  1. 要下载安装才能使用

不同点:

各有不同的API:  nodejs运行js时,不能写DOM,BOM,也不能用window对象了

  1. Nodejs 环境可以去实现后端的功能
  2. 浏览器环境可以去实现前端的功能

四、nodejs中的模块分类

1.理解核心模块

核心模块就是 Node 内置的模块,需要通过唯一的标识名称来进行获取。

  • 每一个核心模块基本上都是暴露了一个对象,里面包含一些方法供我们使用。
  • 一般在加载核心模块的时候,变量(或常量)的起名最好就和核心模块的标识名同名。
  • 例如:const fs = require('fs'), const path = require('path')

2.自定义模块

  • 程序员自己写的模块
  • 相当于我们在学习js时的自定义函数

3.第三方模块

  • 其他程序员写好的模块。nodejs生态提供了一个专门的工具npm来管理第三方模块,后面我们会专门讲到。
  • 相当于别人写好的函数或者库。例如我们前面学习的axios, JQuery库,artTemplate等。

五、文件写入(fs-writeFileSync)再读取(writeFileSync)

1.fs-readFileSync-文件读取

注意:api的名字结尾有Sync(async是异步的,sync表示同步的)

2.fs-writeFileSync-文件写入

功能:向指定文件中写入字符串, 如果没有该文件则尝试创建该文件。

注意:它是覆盖写入,会把文件中的内容全部删除,再填入新的内容

六、路径问题-使用绝对路径

1.__dirname __filename 获取绝对路径

nodejs中提供了两个全局变量来获取获取绝对路径:

  • __filename:获取当前被执行的文件的绝对路径
  • __dirname:获取当前被执行的文件的文件夹所处的绝对路径

2.全局变量的含义是:

  • 变量:它们的值是变化的。在不同的文件中值就不同,因为文件的路径也不同嘛。
  • 全局:在任意地方都可以直接使用。

七、path模块

引入模块步骤:const   path  =require('path')

常用的api

  • path.basename() :此方法返回 path 的最后一部分。一般可用来获取路径中的文件名。
  • path.join() :路径拼接。
  • path.parse(pathurl) :把一个路径转成一个对象

八、啥是模块化?

一个js文件可以引入其他的js文件,能使用引入的js文件的中的变量、数据,这种特性就称为模块化。使用模块化开发可以很好的解决变量、函数名冲突问题,也能灵活的解决文件依赖问题。

Node.js 中的 CommonJS 的模块化规范

CommonJS 规范CommonJS 规范中主要规定了以下 3 项内容:

  • 导入其它模块时,统一使用 require() 函数。
  • 每个 .js 文件,都是一个独立的模块,模块内的成员都是私有的。
  • 在每个 JS 模块中,使用 module.exports 向外共享成员。

注意

  • module.exports 是固定写法,一般放在文件的最末尾,也只用一次。
  • module.exports表示当前模块要暴露给其它模块的功能。(可以导出对象,数组,函数等等类型)

两个对象的关系

初始exports和module.exports是指向同一块内存区域,其内容都是一个空对象。(exports是module.exports的别名)即:exports === module.exports // 输出是 true

  • 在定义模块时:
    如果直接给exports对象赋值(例如:exports={a:1,b:2}),此时,exports就不会再指向module.exports,而转而指向这个新对象,此时,exports与module.exports不是同一个对象。在引入某模块时:以该模块代码中module.exports指向的内容为准。

八、了解npm和包

1.npm

  • npm 全称 Node Package Manager(node 包管理器),它的诞生是为了解决 Node 中第三方包共享的问题。
  • npm 不需要单独安装。在安装Node的时候,会连带自动安装npm
  • npm -v检查安装的情况。
  • 官网

2.安装包分成三步:(注意不可起中文名字)

1)初始化项目。npm init 如果之前已经初始化,则可以省略。

2)安装包。 npm install 包名。[注意:保持联网的状态哈]

3)引入包,使用

1)下载包-修改镜像源 

 2)镜像源(下载包速度快)

检查当前的下包地址:

npm config get registry

把下包的地址切换为国内的淘宝服务器

npm config set registry=https://registry.npm.taobao.org/

3.全局安装包和本地安装包

一个经验法则:

  • 要用到该包的命令执行任务的就需要全局安装
  • 要通过require引入使用的就需要本地安装

4.全局安装nodemon包

作用:能帮我们自动检测到我们的代码的修改,并自动重新运行我们的代码

好处:它的好处在于会自动监听server.js这个文件的变化,如果变化了,就会重新自动再去运行。相当于是如下伪代码:

步骤:

1.在任意位置 打开一个小黑窗,输入如下命令:

2.npm install -g nodemon 回车

nodejs(框架前置基本介绍)相关推荐

  1. Node.js学习8~10款基于nodejs的主流web框架排名及介绍

    Node.js 是基于 Chrome V8 JavaScript 引擎构建的开源.跨平台运行时环境.事件驱动的非阻塞I/O 模型使,Nodejs 能开发极其轻便且高效的 Web 应用程序.客户端 和 ...

  2. mongoose-面向对象操作mongodb的Nodejs框架

    介绍 无论是mysql还是mongodb,传统的与数据库交互的方式都是按照他们提供的API来写代码.它们提供的API往往不是很容易理解,而且难以记忆,如果传错了参数,写错一个符号都要查文档. ORM( ...

  3. 『Python学习笔记』Python中的异步Web框架之fastAPI介绍RestAPI

    Python中的异步Web框架之fastAPI介绍&RestAPI 文章目录 一. fastAPI简要介绍 1.1. 安装 1.2. 创建 1.3. get方法 1.4. post方法 1.5 ...

  4. scrum回顾_沙龙回顾 | 大规模敏捷框架-Essential SAFe介绍

    作者:袁翠 2019年1月20日,这是一个周日的晚上,尽管如此,来参加沙龙的人还是不少,与其在家无所事事,不如来一场知识的火花碰撞. 按照惯例,先是进行自我介绍.如果说这次自我介绍与以往有任何不同的地 ...

  5. python django框架分析_Django框架模型简单介绍与使用分析

    本文实例讲述了Django框架模型简单介绍与使用.分享给大家供大家参考,具体如下: ORM介绍 ORM Object relational mapping 对象关系映射 把面向对象中的类和数据库表一一 ...

  6. 十个最适合 Web 和 APP 开发的 NodeJS 框架

    在浏览器以外运行 JavaScript 对于 JavaScript 爱好者来说非常神奇,同时也肯定是 web 应用程序开发界最受欢迎的进步之一.全球各地的开发者张开双臂拥抱 NodeJS. 对于新手来 ...

  7. python自动化_python自动化测试-Behave框架的用法介绍 - python测试学习

    测码学院  Behave框架的用法介绍 众所周知:行为驱动开发((behavior-drivendevelopment,BDD)是一种基于敏捷软件开发的方法.它可以鼓励开发人员,业务参与者和QA人员之 ...

  8. 十个最适合 Web 和 APP 开发的 NodeJS 框架 1

    十个最适合 Web 和 APP 开发的 NodeJS 框架 在浏览器以外运行 JavaScript 对于 JavaScript 爱好者来说非常神奇,同时也肯定是 web 应用程序开发界最受欢迎的进步之 ...

  9. OpenCart框架运行流程介绍opencart资料链接

    opencart 主要文件夹结构和文件说明 opencart 单入口文件简单分析 opencart中文使用手册 opencart 模块开发详解 OpenCart源码目录结构详解 opencart中的l ...

最新文章

  1. 【Leetcode】刷题之路4(python版)
  2. 为什么我可以在Java中抛出null? [重复]
  3. 手机加速度计数据可以被随意读取,iOS关不掉权限,安卓这次能限制
  4. 企业网络推广方法浅析如何提高网站的点击率和访问量呢?
  5. 你有见过从肚子里抽出来的脂肪吗? | 今日趣图
  6. vue element-ui 无法渲染表格数据解决
  7. scrapy中自定义过滤规则以及start_urls不进过滤器的问题
  8. php 换一换 功能,vue换一换功能原型
  9. GDAL源码剖析(二)之编译说明
  10. c语言程序设计商品管理系统
  11. 塑料成型计算机模拟技术,塑料成型模拟软件技术基础与应用
  12. 《看清你的思维图谱》读书笔记
  13. oracle认证考试_通过获得Oracle助理认证来提升您的职业-PrepAway进行的1Z0-052考试复习
  14. 解决google打开Github慢的问题,亲测有效
  15. 线程中的同步和异步的区别
  16. 数组.列表.集合.应用
  17. 一季度,亏损超7亿!阿里的“亲儿子”百世物流怎么了?
  18. uipath实现打开网页并自动登录扣扣邮箱并且跳转到写信页面
  19. AOP+自定义注解token令牌和参数防重复提交实战
  20. MAC 磁盘清理工具 ncdu

热门文章

  1. 创业修身养性的格言至理名言
  2. redis之RediSearch全文搜索
  3. win10 php环境变量不起作用,win10系统添加PHP环境变量 安装composer的方法步骤
  4. Golang调用Python
  5. Tigase7.1.0安装
  6. 中国消费电子高频主轴市场趋势报告、技术动态创新及市场预测
  7. 文科河南省单招学计算机专业,文科生选哪个单招学校好河南的
  8. c语言wchar转化为char_c、c++ char*和wchar*互相转换
  9. 影视建模与游戏建模的区别,哪个薪资发展更好?
  10. html手机游戏开发,Html5 手机游戏实例 拳皇