gpt4 book ai didi

electron - 在Electron中启动一个小型服务器

转载 作者:行者123 更新时间:2023-12-03 12:29:42 25 4
gpt4 key购买 nike

我需要将Cookie与Electron一起使用,但是它运行在file://上,事实证明,Chromium不支持本地cookie。

因此,我需要启动一些http服务器以保存 session cookie。我需要使用我的API进行身份验证并保存cookie,以便可以对API进行查询。

我发现了一些资源可以做到这一点:
https://www.npmjs.com/package/electronify-server
https://github.com/frankhale/electron-with-express

我一直在互联网上搜索,但似乎无法找到有效的解决方案。 :(

我在Electron顶部有一个角度应用程序。因此,我将尝试包含尽可能多的信息。

main.js-http://pastebin.com/bnBtBTbm

script.js-http://pastebin.com/x7K8VzEW

文件结构-

enter image description here

我正在努力使这个应用程序尽可能简单。我不确定我需要什么才能使其在localhost而不是file://上运行-所以任何帮助将不胜感激!

最佳答案

我很好奇为什么特别需要 cookies ?大多数情况下,普通的旧本地存储在Electron中会更好地工作。话虽这么说,您确实提到了Angular,它确实更喜欢提供服务。

我简化了在一个Electron应用程序中使用的基本HTTP服务器。您将需要npm install mime,但其他所有内容都是内置的。

var app = require('app');
var http = require('http');
var fs = require('fs');
var path = require('path');
var mime = require('mime');

function handleRequest(req, res) {
var file = path.join(app.getAppPath(), req.url);

fs.exists(file, function(exists) {
if (exists && fs.lstatSync(file).isFile()) {
res.setHeader("Content-Type", mime.lookup(file));
res.writeHead(200, {
'Access-Control-Allow-Origin': '*'
});
fs.createReadStream(file).pipe(res);

return;
}

res.writeHead(404);
res.write('404 Not Found');
res.end();
});
}

var server = http.createServer(handleRequest);

server.listen(8888, function() {
console.log('server started at http://localhost:8888');
});

请注意,这将为您的整个Electron应用服务。您可能需要更改它以仅提供特定目录。

另请注意,修改后我并未对此进行测试,如果它完全可以工作,则可能无法处理所有情况。 ;)

关于electron - 在Electron中启动一个小型服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36239965/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com