node常见命令

1、查看安装版本

node -v

2、运行JavaScript文件

node 文件路径

3、fs文件系统模块

//读取文件

//引入fs文件系统模块
const fs = require('fs')

// fs.readFile()语法格式
// fs.readFile(path,options,callback)
// path:读取文件的路径 必选
// options:编码格式,默认值为UTF-8 可选
// callback:回调函数 必选

fs.readFile('./text.txt','utf-8',(err,dataStr)=>{
    // 文件读取成功时,err默认值为null
    // 如果读取失败,err为一个对象,dataStr为undefine
    if(err){
        console.log('文件读取失败',err.message)
    } else {
        console.log('文件读取成功:'+ dataStr)
    }
})

// 写入文件
//引入fs文件系统模块
const fs = require('fs')

// fs.writeFile()语法格式
// fs.writeFile(file,data,options,callback)
// file:读取文件的路径 必选
// data:写入文件的内容
// options:编码格式,默认值为UTF-8 可选
// callback:回调函数 必选

fs.writeFile('./text.txt','写入测试123','utf-8',(err)=>{
    // 写入成功时,err值为null
    // 写入失败时,err是一个错误对象
    if(err){
        console.log('文件写入失败:', err.message)
    } else {
        console.log('文件写入成功')
    }
})

4、path路径模块 

const path = require("path");
const fs = require('fs')

// 路径拼接
// path.join()语法格式
// '../' 会抵消前面的一层路径
const pathStr1 = path.join('/a','/b/c','../','/d','e')
console.log(pathStr1) // \a\b\d\e

const pathStr2 = path.join('/a','/b/c','../../','/d','e')
console.log(pathStr2) // \a\d\e

// __dirname 当前文件所在目录
fs.readFile(path.join(__dirname,'text.txt'),'utf-8',(err,res)=>{
  if(err)
    return console.log('文件读取失败',err.message)
  console.log('文件读取成功',res)
})

// path.basename(path,ext) 获取最后一个文件名称
// path:文件路径 必选
// ext:文件扩展名 可选
const pathStr3 = '/a/b/c/d.html'
const FullName1 = path.basename(pathStr3)
console.log(FullName1) // d.html

const FullName2 = path.basename(pathStr3,'.html')
console.log(FullName2) // d

// path.extname(path) 获取文件扩展名
const extName = path.extname(pathStr3)
console.log(extName) // .html

5、http模块

// res.setHeader()方法,设置 Content-Type 响应头解决中文乱码问题

 res.setHeader('Content-Type','text/html; charset=utf-8')

// res.end()向客户端响应内容

res.end(str)

// 1 导入http模块
const http = require('http')

// 2 创建web服务器实例
const server = http.createServer()

// 3 为服务器实例绑定request事件,监听客户端请求
server.on('request',(res,err)=>{
  console.log('Someone visit your web server')
})

// 4 启动服务器
server.listen(8080, ()=>{
  console.log('server running at http://127.0.0.1:8080')
})

6、moment 时间格式化

// 引入moment模块
const moment = require('moment')

// 使用方法
const dt = moment().format("YYYY-MM-DD HH:mm:ss")

7、npm 发包

// 进行包的根目录打开终端
// 发包
npm publish

// 删除包
npm unpublish 包名 --force

8、nodemon 热更新

// 安装
npm i -g nodemon

9、bcrypt库加密、验证密码

// 下载
npm install bcrypt --save
// 引入
const by = require('bcrypt');
// 调用加密方法
// 参数一:用户信息
// 参数二:加密的强度(0~99),默认为10,等级越高,加密越强,解密性能越低
password = bcrypt.hashSync(userInfo.password, 10)
// 解密方法:返回的参数是一个Boolean值,比对成功则返回true,否则返回false
flag = bcrypt.compareSync("原始密码", "加密后的密码")

10、jsonwebtoken:生成token的包,用于接口权限访问认证

// 下载
npm install jsonwebtoken --save
// 引入
const jsonWebToken = require('jsonwebtoken ');
// 定义加密解密token的密钥
jwtSecretKey = 'xxx'
// 对用户信息进行解密,生产token字符串
// 参数一:用户信息,一般不包括用户密码和头像
// 参数二:密钥
// 参数三:有效期:10s, 10h
const tokenStr = jsonWebToken.sign(user, jwtSecretKey, {expiresIn: '10h'})

给客户端返回的token值还需要包含前缀"Bearer "
res.send({token: 'Bearer ' + tokenStr})

11、express-jwt:解析token的中间件

// 下载
npm install express-jwt --save

// 需要在路由引入之前引入
// 引入
const expressJwt= require('express-jwt');

// unless的path参数,以xxx开头的api不需要认证
app.use(expressJwt({secret: '生成token时定义的密钥'}).unless({path: [/^\/api/]}))

//还需要在错误捕获的中间件中进行处理
app.use((err, req, res, next)=>{
    if(err.name == 'UnauthorizedError') return res.send({code: -1, msg: '身份认证失败!'})
})

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小灰灰学编程

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

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

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

打赏作者

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

抵扣说明:

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

余额充值