小编Rog*_*int的帖子

使用“beforeunload”/“unload”事件侦听器关闭浏览器后,使用 Fetch 发送 POST 请求不起作用

对于我的一生,我无法弄清楚发生了什么。我花了一整天的时间寻找答案,但在任何地方都找不到。我正在练习编写一个函数,通过电子邮件将废弃的表单发送给我。

这是我为托管表单的本地主机运行的 index.js 文件

const inputSelector = document.getElementById("name");
const fieldSelector = document.querySelectorAll('.formfield');
let formData = {};


fieldSelector.forEach(field =>{

    field.addEventListener('input', (e) =>{

        let formField = e.target.id;
        formData[formField] = field.value;
        
    });
})


window.addEventListener('beforeunload', () =>{
    fetch('http://localhost:8080/', {
        method:'post',
        headers:{
            'Content-Type': 'application/json',
        },
        body: JSON.stringify({
            message: formData
        })
    })
})

Run Code Online (Sandbox Code Playgroud)

请求发送到的函数是一个包含以下代码的云函数:

exports.testFetch = async (req, res) =>{
    console.log(req.method);
    if(req.method === 'OPTIONS'){
        console.log('method is option')
        res.set('Access-Control-Allow-Origin', "*")
        res.set('Access-Control-Allow-Methods', 'GET, POST');
        res.set('Access-Control-Allow-Headers', 'Content-Type');
    }

    else{
   
        console.log('full body: ', req.body);
        console.log('message: ', req.body.message);
    }

    res.send('response')

} …
Run Code Online (Sandbox Code Playgroud)

javascript post request fetch google-cloud-functions

8
推荐指数
2
解决办法
7111
查看次数

使用 SQLAlchemy ORM、Pydantic 和 Alembic:每个模型更改都需要反映在三个不同的位置,违反了 DRY?

所以我正在学习FastAPI并希望获得更多关系数据库的经验。我正在使用 SQLAlchemy ORM、Pydantic 和 Alembic。数据库是Postgres。然而,我遇到的一件事是,当我想向表中添加单个列时,我需要更改模型、模式和 alembic 以反映此更改。这不是对 DRY 的巨大违反,容易出错,而且从长远来看很难维护吗?

postgresql orm sqlalchemy alembic pydantic

6
推荐指数
1
解决办法
3307
查看次数

如何将 Y 列连接到 X 列并复制 pandas 数据框中的 Z 值?

我有一个包含三列的 pandas DataFrame:

     X    Y    Z
0    1    4    True
1    2    5    True
2    3    6    False
Run Code Online (Sandbox Code Playgroud)

如何使我有两列XZ值:

    X    Z
0   1    True
1   2    True
2   3    False
3   4    True
4   5    True
5   6    False
Run Code Online (Sandbox Code Playgroud)

python pandas

4
推荐指数
1
解决办法
93
查看次数

使用 puppeteer 截取屏幕截图并将其存储在谷歌云存储中

我将立即描述我的最终目标:我希望能够使用 puppeteer 截取我网站的屏幕截图并将它们直接上传到谷歌云存储(例如使用云功能)。

但是,如果我没有提供本地存储文件的路径,我在实际上传文件时遇到了问题。这是我的代码:

(async () => {
  const browser = await puppeteer.launch({headless: true, args: ['--no-sandbox', '--disable-setuid-sandbox']});
  const page = await browser.newPage();
  await page.goto('https://google.com');
  const filename = await page.screenshot();


    await storage.bucket(bucketName).upload(filename, {
        gzip: true,
})
  

console.log(`${filename} uploaded to ${bucketName}.`);
await browser.close();
})();
Run Code Online (Sandbox Code Playgroud)

我尝试了多种方法,例如对图像进行不同编码并将其从缓冲区转换为字符串,但我一直遇到相同的两个错误,或者:

  • “路径”参数必须是字符串类型。收到一个 Buffer 实例,或
  • 参数“path”必须是字符串或不带空字节的 Uint8Array。

我感谢我能得到的所有帮助 :D 亲切的问候

javascript node.js google-cloud-storage google-cloud-functions puppeteer

2
推荐指数
1
解决办法
1307
查看次数