我正在Node.js中创建一个应用程序以下载图像文件。但是,我遇到一个问题,如果我的下载速度很慢或失去连接,我正在下载的图像将被截断。如果我的程序抛出一个错误警告我该图像未完成下载,那么情况就不会那么糟,但是,它不会执行并可以像成功下载该图像一样进行解析。下载后检查响应代码或探查图像时,我没有收到错误消息。
这是我用来下载图像的当前代码。
const fs = require('fs-extra');
const request = require('request');
var probe = require('probe-image-size');
var progress = require('request-progress');
var filename = 'C:/Users/User/Desktop/myimage.jpg';
var req = request(createRequestHeaders('www.linktomyimage.com/image.jpg'));
downloadImage(req, filename)
function createRequestHeaders(url) {
var cookie = `userid=${userid}; phash=${phash};`;
return {
'url': url,
'method': 'GET',
'gzip': true,
'headers': {
'Referer': `https://${website}/`,
'Cookie': cookie
}
};
}
function downloadImage(req, filename) {
return new Promise((resolve, reject) => {
var response = null;
var bytes;
var dirname = path.dirname(filename);
if (!fs.existsSync(dirname)) fs.ensureDirSync(dirname);
progress(req, { …Run Code Online (Sandbox Code Playgroud) 我正在创建一个类似于谷歌浏览器的电子应用程序,其中包含针对不同页面的多个动态选项卡.该应用程序还支持多个打开的窗口.我希望能够在这些窗口之间拖动标签.我已经知道如何使用ipcRenderer在我的窗口之间发送消息,但我遇到了一些障碍:
1)我无法在窗口外拖动html元素.如何在窗口外拖动标签(或看起来相同的东西)?
我发现一个讨论的论坛,原子如果有人声称他们能够做到这一点,但不要对如何阐述.他们声称"原生HTML5拖放与IPC消息传递相结合是解决方案".其他人链接下面的GitHub示例,但此后的示例已被删除.
2)如何检测选项卡何时被拖动到另一个打开的窗口(其他窗口上释放鼠标)?
讨论再次建议我使用IPC消息来实现这一点,但我还没有找到一种方法来获取释放鼠标的窗口的id.
编辑:
我找到了问题1的解决方案.上面提到的讨论是正确的,使用默认的HTML5拖动行为能够创建我想要的效果.问题2仍然让我感到困惑.我理解使用IPC消息警告所有其他打开的窗口以准备传入拖动的概念,但我仍然不确定如何获取窗口的ID和拖动到它的位置,以便您可以将选项卡信息发送到正确的地方.
我正在建立一个论坛.处理网址时,有一个主板ID和一个主板名称.该名称是为了便于阅读,而id是获取董事会的内容.这意味着如果名称错误或已更改,我想将用户重定向到正确的URL.一些搜索引导我去装饰,但我找不到任何资源教我如何使用它们.
# urls.py
...
url(r'^boards/(?P<board_id>\d+)/(?P<board_name>[^/]+)/$', views.board, name='board'),
...
# views.py
@redirect_if_wrong_boardname
def board(request, board_id, board_name):
...
return render(request, 'forums/board.html', {'board': board})
Run Code Online (Sandbox Code Playgroud)
我如何在装饰器中实现以下逻辑?
board = Board.objects.all().get(pk=pk)
if (board.name != name):
return redirect(request.get_full_path().replace(name, board.name, 1))
Run Code Online (Sandbox Code Playgroud) 我有一个包含自定义下拉菜单的输入。当您单击菜单项时,它应该将输入值设置为该项目的文本。我还希望菜单在输入失去焦点时隐藏。这产生了一个问题,点击菜单项会使输入失去焦点并在菜单项的单击事件可以运行之前隐藏菜单。我该如何解决?
$(document).on('click', '#inputMenu li', function (e) {
$('#input').val($(this).text());
$('#inputMenu').removeClass('active');
e.preventDefault();
return false
});
$('#input').on('focusout',function(e) {
$('#inputMenu').removeClass('active');
});
$('#input').on('input',function(e) {
$('#inputMenu').addClass('active');
});Run Code Online (Sandbox Code Playgroud)
#inputMenu {
display: none;
}
#inputMenu.active {
display: block;
}Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="input" type="text" placeholder="type something">
<ul id="inputMenu">
<li>Click me to set text 1</li>
<li>Click me to set text 2</li>
<li>Click me to set text 3</li>
<li>Click me to set text 4</li>
</ul>Run Code Online (Sandbox Code Playgroud)
我正在创建一个带有自定义窗口栏的电子应用程序,而不是默认的 Windows 应用程序。我需要知道窗口何时最大化或未最大化,以便更改窗口栏上的图标以反映窗口的状态。
我正在为我正在开发的项目创建主题设置。我希望用户能够创建多个主题(数据库中的行),但一次只有一个主题处于活动状态。
class SingleActiveModel(models.Model):
class Meta:
abstract = True
def save(self, *args, **kwargs):
# Save active = False to all other rows or alternative
super(SingleActiveModel, self).save(*args, **kwargs)
class Theme(SingleActiveModel):
some_setting = models.SomeField()
active = models.BooleanField(default=False)
Run Code Online (Sandbox Code Playgroud)