当前位置:   article > 正文

node常见命令_node 命令

node 命令

1、查看安装版本

node -v

2、运行JavaScript文件

node 文件路径

3、fs文件系统模块

  1. //读取文件
  2. //引入fs文件系统模块
  3. const fs = require('fs')
  4. // fs.readFile()语法格式
  5. // fs.readFile(path,options,callback)
  6. // path:读取文件的路径 必选
  7. // options:编码格式,默认值为UTF-8 可选
  8. // callback:回调函数 必选
  9. fs.readFile('./text.txt','utf-8',(err,dataStr)=>{
  10. // 文件读取成功时,err默认值为null
  11. // 如果读取失败,err为一个对象,dataStr为undefine
  12. if(err){
  13. console.log('文件读取失败',err.message)
  14. } else {
  15. console.log('文件读取成功:'+ dataStr)
  16. }
  17. })
  18. // 写入文件
  19. //引入fs文件系统模块
  20. const fs = require('fs')
  21. // fs.writeFile()语法格式
  22. // fs.writeFile(file,data,options,callback)
  23. // file:读取文件的路径 必选
  24. // data:写入文件的内容
  25. // options:编码格式,默认值为UTF-8 可选
  26. // callback:回调函数 必选
  27. fs.writeFile('./text.txt','写入测试123','utf-8',(err)=>{
  28. // 写入成功时,err值为null
  29. // 写入失败时,err是一个错误对象
  30. if(err){
  31. console.log('文件写入失败:', err.message)
  32. } else {
  33. console.log('文件写入成功')
  34. }
  35. })

4、path路径模块 

  1. const path = require("path");
  2. const fs = require('fs')
  3. // 路径拼接
  4. // path.join()语法格式
  5. // '../' 会抵消前面的一层路径
  6. const pathStr1 = path.join('/a','/b/c','../','/d','e')
  7. console.log(pathStr1) // \a\b\d\e
  8. const pathStr2 = path.join('/a','/b/c','../../','/d','e')
  9. console.log(pathStr2) // \a\d\e
  10. // __dirname 当前文件所在目录
  11. fs.readFile(path.join(__dirname,'text.txt'),'utf-8',(err,res)=>{
  12. if(err)
  13. return console.log('文件读取失败',err.message)
  14. console.log('文件读取成功',res)
  15. })
  16. // path.basename(path,ext) 获取最后一个文件名称
  17. // path:文件路径 必选
  18. // ext:文件扩展名 可选
  19. const pathStr3 = '/a/b/c/d.html'
  20. const FullName1 = path.basename(pathStr3)
  21. console.log(FullName1) // d.html
  22. const FullName2 = path.basename(pathStr3,'.html')
  23. console.log(FullName2) // d
  24. // path.extname(path) 获取文件扩展名
  25. const extName = path.extname(pathStr3)
  26. 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. // 1 导入http模块
  2. const http = require('http')
  3. // 2 创建web服务器实例
  4. const server = http.createServer()
  5. // 3 为服务器实例绑定request事件,监听客户端请求
  6. server.on('request',(res,err)=>{
  7. console.log('Someone visit your web server')
  8. })
  9. // 4 启动服务器
  10. server.listen(8080, ()=>{
  11. console.log('server running at http://127.0.0.1:8080')
  12. })

6、moment 时间格式化

  1. // 引入moment模块
  2. const moment = require('moment')
  3. // 使用方法
  4. const dt = moment().format("YYYY-MM-DD HH:mm:ss")

7、npm 发包

  1. // 进行包的根目录打开终端
  2. // 发包
  3. npm publish
  4. // 删除包
  5. npm unpublish 包名 --force

8、nodemon 热更新

  1. // 安装
  2. npm i -g nodemon

9、bcrypt库加密、验证密码

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

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

  1. // 下载
  2. npm install jsonwebtoken --save
  3. // 引入
  4. const jsonWebToken = require('jsonwebtoken ');
  5. // 定义加密解密token的密钥
  6. jwtSecretKey = 'xxx'
  7. // 对用户信息进行解密,生产token字符串
  8. // 参数一:用户信息,一般不包括用户密码和头像
  9. // 参数二:密钥
  10. // 参数三:有效期:10s, 10h
  11. const tokenStr = jsonWebToken.sign(user, jwtSecretKey, {expiresIn: '10h'})
  12. 给客户端返回的token值还需要包含前缀"Bearer "
  13. res.send({token: 'Bearer ' + tokenStr})

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

  1. // 下载
  2. npm install express-jwt --save
  3. // 需要在路由引入之前引入
  4. // 引入
  5. const expressJwt= require('express-jwt');
  6. // unless的path参数,以xxx开头的api不需要认证
  7. app.use(expressJwt({secret: '生成token时定义的密钥'}).unless({path: [/^\/api/]}))
  8. //还需要在错误捕获的中间件中进行处理
  9. app.use((err, req, res, next)=>{
  10. if(err.name == 'UnauthorizedError') return res.send({code: -1, msg: '身份认证失败!'})
  11. })

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/283464
推荐阅读
相关标签
  

闽ICP备14008679号