我刚开始学习使用Express Framework的Node.js,在我的React应用程序中,用户以base64
向端点/session/start
发送一个图像,我想存储此base64
字符串,并将其从另一个端点/session/recordFile
缓冲,我尝试声明一个全局变量,但没有正面结果:),我有一个问题,使用Express.js实现此结果的适当方法是什么?
const express = require("express");
const axios = require("axios");
const Twitter = require("twitter");
const serverless = require("serverless-http");
const cors = require("cors");
const path = require("path");
const fs = require("fs");
const oauth = require("oauth");
let GlobalFile;
//start session
router.post("/session/start", function (req, res) {
const body = JSON.parse(req.body)
const file = body.binary
GlobalFile = file
});
router.get("/session/recordFile", function (req, res) {
const buf = Buffer.from(GlobalFile, 'base64')
res.send({mockFile: buf})
});
2条答案
按热度按时间yk9xbfzb1#
通常情况下,在路由级别上将其赋给变量是一个坏主意。如果两个人调用您的
/start
API,在您设法获取第一个数据之前,变量将被第二次调用的数据覆盖。这种方法将不可扩展也许你可以 checkout this question,把你的图像存储在一个临时文件夹中,以后再用文件名取出来。如果你可以使文件名可变,你就可以在执行第一次
POST
之前执行多次GET
调用,而不会丢失任何数据n53p2ov02#
您首先需要将映像存储到磁盘或将Base64字符串保存到DB或内存存储(如NEdb
将图像保存到磁盘
然后您可以在GET API中使用保存的图像