一、什么是Node.Js?
Node.js 是一个开源和跨平台的 JavaScript 运行时环境。
它让JavaScript可以脱离浏览器端,在服务器端运行,让javaScript可以开发后端程序,实现了大部分其他后端语言的功能。 Node.js 建立在 Google Chrome V8 JavaScript 引擎之上,主要用于创建网络服务器 - 但不仅限于此。
二、Node.Js的安装
1、下载地址及版本
可以去Node.Js官网下载:https://nodejs.org
安装目录使用英文路径
(LTS)代表长期稳定版;项目开发一般会选择长期稳定版,根据项目所需,自行选择版本。
(Current)代表最新版;可以自己体验新功能,但最新版可能会出现未知bug
在node的使用中,使用npm下载安装包;
初始化:npm init -y
npm install 或 npm i;下载所有包 ;下载指定的包: npm i 包名
代表本地安装,可以用命令npm root查看本地安装的包的安装路径。
npm install -g ( 加-g代表全局安装;)
全局安装默认安装到:C:Users\用户目录\AppData\Roaming\npm\node_modules 目录下;
卸载:uninstall;包的引入:require()。
安装下载时常见错误:
例:出现‘npm ERR! code CERT_HAS_EXPIRED npm ERR! errno CERT_HAS_EXPIRED npm ERR! request to’错误;翻译为:‘npm犯错!代码证书已过期!证书已过期!‘请求’证书过期,
可以尝试在终端输入:
npm cache clean --force
npm config set strict-ssl false
之后再下载安装
检测是否安装成功:
如果安装成功后,在终端或命令行工具中使用:node -v; 和npm -v;命令可以查看版本号;
2、配置镜像站
npm下载包的时候从默认npm服务器下载,因为从国外服务器下载速度较慢,所以可以尝试手动设置npm地址为国内镜像地址例如淘宝等镜像地址,在终端输入命令:
淘宝镜像地址:npm config set registry http://registry.npmmirror.com/ 或npm config set registry http://registry.npm.taobao.org/
阿里云镜像地址:npm config set registry https://npm.aliyun.com/
设置反回原镜像地址:npm config set registry https://registry.npmjs.org/
验证npm地址:npm config get registry
如果出现报错;可能是权限问题,可以尝试其他镜像地址,或者以管理员身份运行命令:sudo。
3、终端中常用的命令及快捷键
↑ 、↓:定位上一行或下一行的历史命令;
Ctrl+C:不再是复制,关闭当前node进程;
鼠标右键:变为复制粘贴,选中内容单击右键复制,再次右键粘贴
Tab:自动补全路径;(另外输入 cd .. 命令是返回上一层;cd ~ 命令是返回根目录;pwd 查看当前目录路径)
esc:清空当前行已输入命令
clear/cls:清除当前终端所有命令
ls:显示当前路径文件下所有内容
三、Node.Js的模块
node.js的模块可以分为:核心模块、自定义模块、第三方模块
核心模块:是由Node.js官方提供的内置模块
可以在官网的网页中查询node的内置模块及其功能:https://nodejs.cn/api
常用的模块例如:
fs模块:一般用于对文件的操作,如读取文件、写入文件、文件添加等。
path模块:一般用path处理路径,来解决路径问题。
querystring 模块:用于解析和序列化url查询字符串。
http模块:用来搭建服务器
1.fs模块
引入fs包:const fs = require('fs')
fs几个常用的方法:
读取文件(readFile)例:
读取:fs.readFile('地址')
const fs = require('fs');
fs.readFile('./json/index.json', (err, data) => {
if (err) {
console.log('读取失败');
console.log(err);
}
else {
console.log(data.toString());
}
})
写入文件(writeFile)例:
写入:fs.writeFile('地址','写入的内容')
写入文件是覆盖写入,会删除文件之前的内容,写入新的。
const fs = require('fs');
fs.writeFile('./json/index.json','{"name":"333333333333"}', (err) => {
if(err){
console.log('写入失败');
console.log(err);
}
else{
console.log("写入成功");
}
})
拼接文件(appendFile) 例:
拼接:fs.appendFile('地址','拼接的内容')
拼接在所有内容的末尾
const fs = require('fs');
fs.appendFile('./json/index.json','{"b":"2222"}', (err) => {
if(err){
console.log('拼接失败');
console.log(err);
}
else{
console.log("拼接成功");
}
})
2.path模块:
引入path包:const path = require('path')
path几个常用的方法:
拼接路径path.join 例:
'__dirname'可以获取当前文件的文件夹所在的绝对路径,用path.join拼接上目标文件的相对路径,就可以得到目标文件的绝对路径。('__filename'可以获取当前文件所在的绝对路径)
path.join(__dirname, './json/index.json')
路径获取path.basename
path.basename('希望获取的目标文件名')
path.basename('index.html');
3.querystring 模块:用于解析和序列化 URL 查询字符串。
引入qs包:const qs = require('querystring')
qs.stringify() : 将对象转化为url形式的字符串。
qs.parse() : 将字符串转化为对象。
json 与它相似
json.stringify() 将转化为json格式的字符串。
json.parse() 将json字符串转化为对象。
4.http模块:
在终端node运行文件,返回打印的内容‘server run port 3000’,服务启动成功,可以去访问127.0.0.1:3000
//引入包
const http = require('http');
//搭建服务器
let app=http.createServer((req, res) => {
console.log(req.connection.remoteAddress);
res.write('响应还未结束')
res.end('ok')
})
//启动服务器
app.listen(3000,() => {
console.log('server run port 3000')
})
第三方模块:第三方作者发布分享的模块
可以去https://www.npmjs.com
根据自己的需求查找,其他作者分享的包。
自定义模块:自己创建的模块
自己创建的模块,比如把某一功能分装到另一个js文件,这个js文件就算是自定义模块。
引入自定义模块,还是使用require()引入,但自定义模块不能只用文件名,需要加“./”或"../"表示地址
const express = require('express');
const app = express();
//引入
const userRouter = require('./router/user.js');
app.use('/user', userRouter);
app.listen(3000,()=>{
console.log('express -- 3000端口 -- 已开放')
});
导出使用exports
const express = require('express')
let router = express.Router()
router.get('/getnames', (req, res) => {
res.send('user/getnames');
})
//导出
module.exports = router;
标签:Node,npm,fs,require,Js,json,模块,path From: https://blog.csdn.net/weixin_68856615/article/details/141332842