文件的写入-对Excel文件数据操作-express生成器——
Posted 勇敢*牛牛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件的写入-对Excel文件数据操作-express生成器——相关的知识,希望对你有一定的参考价值。
fs.writeFile
异步地将数据写入到一个文件,如果文件已存在则覆盖该文件。 data 可以是字符串或 buffer。
fs.writeFile('a.txt', '文本内容', 'utf8', function()
);
fs.writeFile(path.join(__dirname,"a.txt"),"ajaksjdlakjdlkasjdalkjsd",function(err)
console.log(err);
)
封装fs.appendFile
向文件尾部增加新数据,如果该文件不存在就会创建一个新文件
fs.appendFile(path.join(__dirname,"a.txt"),"\\nbbbb",function(err)
console.log(err);
)
function appendFile(data)
return new Promise((resolve,reject)=>
fs.appendFile(path.join(__dirname,"a.txt"),"\\n"+data,function(err)
resolve(!err);
)
)
fs.rename
异步地把 oldPath 文件重命名为 newPath 提供的路径名。
fs.rename(path.join(__dirname,"a.txt"),path.join(__dirname,"b.txt"),function(err)
console.log(err);
)
fs.unlink
删除文件
fs.unlink(path.join(__dirname,"b.txt"),function(err)
console.log(err);
)
监视文件
监视文件的变化
fs.watch(path.join(__dirname,"a.txt"),"utf8",function(event,filename)
console.log(event,filename);
)
fs.createReadStream()
读取文件流
流式写入,如果是大文件,内容较多,例如视频等就需要流式写入,防止内存卡死
const fs = require('fs')
const readstream = fs.createReadStream('./note.txt');
readstream.pipe(fs.createWriteStream('./note2.txt'));
对.xlsx的文件数据的操作
利用插件来完成对excel表格数据的筛选。
import xlsx from "node-xlsx";
import fsp from "fs/promises";封装好的数据
import path from "path";
init();
async function init()
var data=await fsp.readFile(path.join(path.resolve(),"abc.xlsx"));
data=xlsx.parse(data)[0];
var arr=data.data.slice(0,4).concat(data.data.slice(4).filter(item=>item[5]>=90));
var buffer=xlsx.build([name:"GP27考试90分以上的表格",data:arr]);
await fsp.writeFile(path.join(path.resolve(),"90Up.xlsx"),buffer);
express基础
全局安装express,引入
var express = require('express');
var app = express();
启动命令:
node app.js
express的通信应用
app.get
app.post
var express=require("express");
var app=express();
app.post("/a",function(req,res)
//req 这里的req就是请求数据的内容
)
app.listen(4001);
app.put,app.delete,app.all
express中间件和路由
- 1、GET请求会向数据库发索取数据的请求,从而来获取信息,该请求就像数据库的select操作一样,只是用来查询一下数据,不会修改、增加数据,不会影响资源的内容,即该请求不会产生副作用。无论进行多少次操作,结果都是一样的。
- 2、与GET不同的是,PUT请求是向服务器端发送数据的,从而改变信息,该请求就像数据库的update操作一样,用来修改数据的内容,但是不会增加数据的种类等,也就是说无论进行多少次PUT操作,其结果并没有不同。
- 3、POST请求同PUT请求类似,都是向服务器端发送数据的,但是该请求会改变数据的种类等资源,就像数据库的insert操作一样,会创建新的内容。几乎目前所有的提交操作都是用POST请求的。
- 4、DELETE请求顾名思义,就是用来删除某一个资源的,该请求就像数据库的delete操作。
app.all是不管哪种都可以接收
app.use用于中间件
app.use("/",function(req,res,next)
res.set('Access-Control-Allow-Origin':'*');//例如在这里处理跨域问题
next();
)
app.set
部分第三方的一些插件在express框架中使用时需要设置一些基础参数,便于在使用时直接调用,这里有一部分是固定属性,也可以自定义属性
例如express框架使用时:
//设置views文件夹也就是模板文件夹,对于调用的路径是view文件夹下
app.set("views",path.join(__dirname,"./view"));
//设置视图解析的方式是通过art这个注册的插件
app.set("view engine","art");
- use一般用于中间件,目的是在发送之前,或者某件事件之前先做一些处理,例如提前处理一些数据
- 注意use后面的第二个函数中有3个参数,第一个是req,第二个是res,第三个是next
我们在use中处理完内容后,必须执行next()这样才可以进入后续的内容,否则将不会向后继续执行
可以通过express 快速生成服务器骨架
下载
npm i express-generator -g
express中提供了 ejs,hbs,pug,hogan.js等引擎,不带art-template 这里我们可以尝试使用ejs完成
express --view=ejs
或者
express -e
"morgan": "~1.9.1":生成日志的插件
现阶段常用的几个插件:
"devDependencies":
"cross-env":"^7.0.3",
"nodemon":"^2.0.19"
"scripts":
"start": "cross-env PORT=4000 nodemon ./bin/www"
,
执行 npm i
启动DEBUG=express2:* & npm start
写入文件
writeFile
保存图片
http-server
以上是关于文件的写入-对Excel文件数据操作-express生成器——的主要内容,如果未能解决你的问题,请参考以下文章
Jmeter存储测试结果&写入结果到Excel之环境准备&测试数据结构准备&写入结果到Excel之代码准备&写入结果到Excel(十九)