【express】又是新手踩坑的一天啊
背景:
在尝试自己做一个小工具,需要读写本地文件,所以打算启动一个前端服务器,此前没有相关经验,只知道nodejs可以做,于是开始艰难摸索。框架使用express和React。
配置proxy代理
首先,前端的请求需要被服务器拦截/转发,所以先配了个代理。在package.json里:
{
"proxy": "http://localhost:3008",
}
这样前端的请求就会被转发到以上域名。
配置服务器文件
新建一个server.js文件,里面引用express:
var express = require("express");
var app = express();
配置服务器监听3008端口:
var express = require("express");
var app = express();
const http = require("http");
const port = 3008;
const server = http.createServer(app);
server.listen(port, () => console.log(`API is listening on http://localhost:${port}`));
配置获取文件请求的拦截器:
var express = require("express");
var app = express();
const http = require("http");
app.get("/getFile", function(req, res){
fs.createReadStream(req.query.filename)
.on("data", (data)=>{
// handle file data
})
.on("end", ()=>{
// read file end
res.status(200).send("success!")
})
.on("error", (err)=>{
res.status(500).send(err);
})
})
const port = 3008;
const server = http.createServer(app);
server.listen(port, () => console.log(`API is listening on http://localhost:${port}`));
启动服务器文件
node server.js
前端发送获取文件请求
function getCsvFile(filename){
axios.get(`/getFile?filename=${filename}`)
.then(res => {
console.log(res.data);
})
.catch(err => {
console.log("error occurs:" + err);
})
}