赞
踩
node -v
node 文件路径
- //读取文件
-
- //引入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('文件写入成功')
- }
- })
-

- 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

// 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')
- })
- // 引入moment模块
- const moment = require('moment')
-
- // 使用方法
- const dt = moment().format("YYYY-MM-DD HH:mm:ss")
- // 进行包的根目录打开终端
- // 发包
- npm publish
-
- // 删除包
- npm unpublish 包名 --force
- // 安装
- npm i -g nodemon
- // 下载
- 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: '身份认证失败!'})
- })
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。