首页 > 编程语言 >1Node开发

1Node开发

时间:2022-10-02 11:00:33浏览次数:75  
标签:Node 文件 exports 1Node 开发 npm 模块 console

Node开发

什么是Node

Node是一个基于Chrome V8引擎的JavaScript代码运行环境。

安装Node

官网 :https://nodejs.org/en/

//命令行操作
node 文件名   //运行文件
clear  //清除屏幕
shift + 右击  //当前文件夹用percell打开

Node 模块化开发

  • JavaScript开发弊端

JavaScript在使用时存在两大问题,文件依赖和命名冲突。

  • 开发规范
  1. Node.js规定一个JavaScript文件就是一 个模块, 模块内部定义的变量和函数默认情况下在外部无法得到
  2. 模块内部可以使用exports对象进行成员导出,使用require方法导入其他模块。
//模块成员导出
// 模块内部定义变量
let version = 1.0
// 模块内部定义方法
const sayHi = (name) => `恭喜${name}`
// 向模块外部导入数据
exports.version = version
exports.sayHi = sayHi


//在b中导入模块a
// let a = require('./a.js')
let a = require('./a')
//输出b模块的versive变量
console.log(a.version)
console.log(a.sayHi('导入成功!'))

  • 模块成员导出的另一种方式
module . exports . version = version ;
module . exports . sayHi = sayHi ;

exports是module.exports的别名(地址引用关系),导出对象最终以module.exports为准

//导出
const greeting = (name) => `${name}`
const x = 100
exports.x = x
module.exports.greeting = greeting
//当exports对象和moudle.exports对象指向的不是同一个对象时以module.exports为准
module.exports = {
  name: 'zhangsan',
}

//导入
const a = require('./04.mode.export')
// console.log(a.greeting('hhahah获取到了'))
console.log(a)
  • 两种导出方式的区别

系统模块

  • 什么是系统模块

Node运行环境提供的API.因为这些API都是以模块化的方式进行开发的,所以我们又称Node运行环境提供的API为系统模块

系统模块fs文件操作

f: file文件,s: system系统,文件操作系统。 
const fs = require ('fs');

读取文件内容

fs.reaFile('文件路径/文件名称'[,'文件编码'],callback) ;
//读取上一级css目录 下中的base.css
fs.readFile('.. /css/base.css', 'utf-8' (err, doc) => {
//如果文件读取发生错误参数err的值为错误对象否则err的值为null
// doc参数为文件内容
if (err == nu11) {
//在控制台中输出文件内容
console. log (doc) ;
}
}) ;

文件的写入操作

fs . writeFile('文件路径/文件名称','数据',callback);
const content = ' <h3>正在使用fs. writeFile写入文件内容</h3>' ;
fs.writeFile ('../ index.html',content, err => {
	if (err != null) {
		console.log(err) ;
		return ;
}
	console.log('文件写入成功') ;
}} ;

系统模块path路径操作

  • 拼接语法
path.join('路径','路径',...)
//导入path模块
const path = require('path') ;
//路径拼接
let finialPath = path.join('itcast', 'a', 'b', 'c.css') ;
//输出结果itcast\a\b\C.css
console .log (finialPath) ;

相对路径vs绝对路径

  • 大多数情况下使用绝对路径,因为相对路径有时候相对的是命令行工具的当前工作作录

  • 在读取文件或者设置文件路径时都会选择绝对路径

  • 使用_ _dirname获取当前文件所在的绝对路径

第三方模块

  • 什么是第三方模块

别人写好的、具有特定功能的、我们能直接使用的模块即第三方模块,于第三方模块通常都是由多个文件组成并且被放置在一一个文件夹中,所以又名包。

获取第三方模块

https://www.npmjs.com/ 第三方模块存储和分发仓库

安装Node后就可以直接使用第三方模块

  • 下载: npm install 模块名称
  • 卸载: npm unintall package 模块名称
  • 全局安装与本地安装
    • 命令行工具:全局安装
    • 库文件:本地安装

第三方模块 nodemon

nodemon是一个命令行項用以辅助项目开发。
在Node.js中,每次修改文件都要在命令行工具中重新执行该文件,非常繁琐。

使用步骤

  1. 使用 npm install nodemon -g 下载它
  2. 在命令行工具中用nodemon命令替代node命令执行文件

第三方模块 nrm

nrm ( npm registry manager): npm下载地址切换具

npm默认的下载地址在国外,国内下载速度慢

国内:https://npmmirror.com/

使用步骤

  1. 使用 npm install nrm -g 下载

  2. 查询可用下载地址列表 nrm ls

  3. 切换 npm下载地址 nrm user 下载地址名称

标签:Node,文件,exports,1Node,开发,npm,模块,console
From: https://www.cnblogs.com/daixiaoyang/p/16748408.html

相关文章

  • cpp开发报错大全
     ###静态分析https://zhengtianzuo.blog.csdn.net/article/details/122679768 ###undefinedreferenceto`vtable 检查下声明为接口的类,是不是没有设置成存虚函......
  • WPF开发经验-实现自带触控键盘的TextBox
    一引入项目有个新需求,当点击或触碰TextBox时,基于TextBox的相对位置,弹出一个自定义的Keyboard,如下图所示: 二KeyboardControl先实现一个自定义的KeyboardControl,它继......
  • 对嵌入式开发过程中设计的浅显理解
    设计的目的(统一思想)从IPD项目流程中理解,设计阶段介于需求定义和功能(电路和程序)实现之间,所以要承上启下,即证明(讲明白)我们最终可呈现出来的东西,是如何满足需求的,......
  • 创新产品开发的有效步骤
    创新产品开发的有效步骤产品开发是企业中影响其长期可持续性的最重要流程之一。一家将创新产品推向市场的公司可能具有促进其增长的竞争优势。要开发新产品,企业需要进行......
  • 基于Vagrant搭建Docker虚拟开发环境
    1)安装vagrant2)安装Centos7$vagrantinitcentos/7A`Vagrantfile`hasbeenplacedinthisdirectory.Youarenowreadyto`vagrantup`yourfirstvirtualenvir......
  • 三步快速搭建android开发环境 (下载包已集成可用sdk,无需费心到google相应网站下载,快哉!)
    其中,adtbuntle在这里下:找到这个:​​adt-bundle-windows-x86_64-20140321.zip​​510.0M Android4.2(4.4?)多合一开发包,注意所含eclipse是64位的。===================......
  • 数字化影响下,Android 开发会面临哪些挑战?
    这里应该说的是企业的数字化,而面向企业的数字化场景由传统的标准化工业软件转向个性化的工业APPs,服务千差万别的企业和各种工作场景,同时还要与硬件平台互通,所以易于快速个......
  • VSCode + WSL + clangd +CMake + CMake Tools搭建C++开发环境
    前言开始安装前先了解以下概念:gcc,llvm,clang区别与联系:详解三大编译器:gcc、llvm和clangclangd是什么?Whatisclangd?与LLVM每日谈之二十五Clangd和LSP简而言之cl......
  • 软件开发工具填空汇总
    第三代程序设计语言一般都是(过程化 )语言。进入二十一世纪以来,软件开发工具的发展有两个鲜明的特点,第一个特点是面向网络,另一个特点是(来源软件兴起和运用)。填空题171......
  • java 前后端开发模式简单说明
    实际上我以前写过一个简单的web前后端部署模式的说明,以下简单说明下关于java语言的,毕竟这个使用人群比较多参考图前后端彻底分离模式(都独立部署)  web使用基于......