Node01:

Node01:
1.Node开发概述
服务器端开发要做的事:实现网站的业务逻辑
数据的增删改查
Node是一个基于ChromeV8引擎的JavaScript代码运行环境
2.Node运行环境的搭建
LTS长期支持版 稳定版
Current拥有最新特性 实验版、
官网:https://nodejs.org/en/
1)错误代码2502、2503
解决方法:
a.以管理员身份运行powershell命令行工具
b.输入运行安装包命令msiexec/package node安装包位置
执行windows命令下的msi安装包
例如:
msiexec/package node安装包位置 node安装包名字
(默认安装的node安装包位置在c盘Program Files文件夹下nodejs文件夹)
msiexec/package C:\Program Files\nodejs node-v12.18.0-x64.msi
2)执行命令报错
失败原因:Node安装目录写入环境变量失败
解决方法:将Node安装目录添加到环境变量中
此电脑–属性–高级系统配置–高级选项卡–环境变量–Path–新建–将Node安装路径粘贴
然后在运行powershell命令行工具
node -v查看版本号就会发现正确了
3. Node.js组成:Node.js是由ECMAScript及Node环境提供的一些附加API组成的,包括文件、网络、路径等等一些更加强大的API
Node.js
ECMAScript Node模块API
cd …/
cd …/
cd 3-code
node 01.helloworld.js
在键盘上按住shift键的同时点击鼠标右键通过powershell打开
node .\01.helloworld.js
hello nodejs
fn函数被调用了
0
1
2
3
4
123
文件被修改了
3.Node.js模块化开发
1)js两大问题:文件依赖,命名冲突
2)Node.js模块化开发规范:
a.Node.js规定一个JavaScript文件就是一个模块,模块内部定义的变量和函数默认情况下在外部无法得到
b.模块内部可以使用exports对象进行成员导出,使用require导入其他模块
A模块(a.js) B模块(b.js)
加法函数 A模块=require(A模块)
减法函数 A模块.加法()
乘法函数 A模块.减法()
除法函数
exports.加法=加法
exports.减法=减法
//a.js
//在模块内部定义变量
let version=1.0;
//在模块内部定义方法
const sayHi=name=>您好,${name};
//向模块外导出数据
exports.version=version;
exports.sayHi=sayHi;
//b.js
//在b.js模块中导入模块a
let a=require(’./a.js’);
//输出b模块中的version变量
console.log(a.version);
//调用b模块中的sayHi方法,并输出其返回值
console.log(a.sayHi(‘黑马讲师’));
导入模块时,后缀可以省略
c.模块成员导出的另一种方式
module.exports.version=version;
module.exports.sayHi;
d.exports是module.exports的别名(地址引用关系),导出对象最终以module.exports为准
4.系统模块
1)系统模块fs文件操作
file system
a.读取文件内容:
fs.readFile(‘文件路径/文件名称’[,‘文件编码’],callback);
回调函数
const fs=require(‘fs’);
//读取上一级css目录下中的base.css
fs.readFile(’…/css/base.css’,‘utf-8’(err,doc)=>{
//如果文件读取发生错误,参数err的值为错误对象,否则err的值为空
//doc参数为文件内容
//如果文件读取出错err是一个对象,包含错误信息
//如果文件读取正确err是null
//doc是文件读取的结果
if(err=null){
//在控制台中输出文件内容
console.log(doc);
}
})
b.写入文件内容
fs.writeFile(‘文件路径/文件名称’,‘数据’,callback);
const content=‘

正在使用fs.writeFile写入文件内容

’;
fs.writeFile(’…/index.html’,content,err=>{
if(err!=null){
console.log(err);
return;
}
console.log(‘文件写入成功’);
})
c.系统模块path路径操作
为什么会有路径拼接
不同操作系统的路径分隔符不统一
/public/uploads/avatar
windows上是\ /
linux上是 /
path.join(‘路径’,‘路径’,…)
//导入path模块
const path=require(‘path’);
//路径拼接
let finialPath=path.join(‘itcast’,‘a’,‘b’,‘c.css’);
//输出结果
console.log(finialPath);
d.相对路径VS绝对路径
使用_dirname获取当前文件所在的绝对路径
const fs=require(‘fs’);
const path=require(‘path’);
console.log(_dirname);
console.log(path.join(_dirname,‘01.helloworld.js’),‘utf8’,(err,doc)=>{
console.log(err);
console.log(doc);
})
5.第三方模块
别人写好的,多个文件组成放置在一个文件夹中,称为包
两种存在形式:
以js文件形式存在,提供实现项目具体功能的api接口
以命令行工具形式存在,辅助项目开发
获取第三方模块:
npmjs.com
npm(node package manager):node的第三方模块管理工具
下载:npm install 模块名称
npm install formidable//文件下载与上传
卸载:npm uninstall 模块名称
全局安装与本地安装:
库文件:本地安装
命令行工具:全局安装
6.第三方模块nodemon
nodemon是一个命令行工具,用以辅助项目开发
在Node.js中,每次修改文件都要在命令行工具中重新执行该文件,非常繁琐
使用步骤:
1.使用npm install nodemon -g下载它
2.在命令行工具中用nodemon命令代替node命令执行该文件
断开这个操作Ctrl+C键(终止操作)
7.第三方模块nrm
nrm(npm registry manager):npm下载地址切换工具
npm默认的下载地址在国外,国内下载速度慢
国外npmjs.com

国内npm.taobao.org

       开发者

使用步骤:
1.使用npm install nrm -g下载它
2.查询可用下载地址列表nrm ls
3.切换npm下载地址 nrm use下载地址名称
nrm use taobao//将地址切换为用淘宝地址
nrm install gulp//下一步要学习的模块

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想成为前端工程师滴小小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值