【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);
  })
}
posted @ 2023-04-17 15:47  leah-xx  阅读(15)  评论(0编辑  收藏  举报