小编dar*_*ong的帖子

Typescript - 扩展错误类

我试图抛出一个自定义错误,我的"CustomError"类名称打印在控制台而不是"错误",但没有成功:

class CustomError extends Error { 
    constructor(message: string) {
      super(`Lorem "${message}" ipsum dolor.`);
      this.name = 'CustomError';
    }
}
throw new CustomError('foo'); 
Run Code Online (Sandbox Code Playgroud)

输出是Uncaught Error: Lorem "foo" ipsum dolor.

我的期望:Uncaught CustomError: Lorem "foo" ipsum dolor.

我想知道是否只能使用TS来完成(没有搞乱JS原型)?

javascript typescript

57
推荐指数
6
解决办法
3万
查看次数

PHP致命错误:未捕获异常'异常'

我正在玩PHP中的异常.例如,我有一个脚本读取$ _GET请求并加载文件; 如果该文件不存在,则应抛出新的异常:

if ( file_exists( $_SERVER['DOCUMENT_ROOT'] .'/'.$_GET['image'] ) ) {
    // Something real amazing happens here.
}
else {
    throw new Exception("The requested file does not exists.");
}
Run Code Online (Sandbox Code Playgroud)

问题是,当我尝试为测试提供不存在的文件时,我收到500错误而不是异常消息.服务器日志如下:

[09-Jul-2013 18:26:16 UTC] PHP Fatal error:  Uncaught exception 'Exception' with message 'The requested file does not exists.' in C:\sites\wonderfulproject\script.php:40
Stack trace:
#0 {main}
  thrown in C:\sites\wonderfulproject\script.php on line 40
Run Code Online (Sandbox Code Playgroud)

我想知道我是否遗漏了一些非常明显的东西.

我已经检查了这个问题PHP致命错误:未捕获异常'异常'的消息,但它不太像我的问题,并没有简明的答案.

请帮忙?

*编辑*

这似乎与throw关键字有关.如果我使用echo例如,我在屏幕上打印了消息,如下所示:

消息'文件不存在'的异常'异常'.在C:\ sites\wonderfulproject\script.php:183堆栈跟踪:#0 {main}

这是为什么?

**编辑2**

感谢@Orangepill,我对如何处理异常有了更好的理解.我从nettuts中找到了一个很棒的啧啧,这帮助了很多.链接:http: …

php exception throw

10
推荐指数
2
解决办法
10万
查看次数

Laravel 3 Eloquent如何选择列为

我正试图弄清楚如何使用Eloquent为列添加别名.

那么,换句话说,如何使用Eloquent执行以下mysql查询?

SELECT occupation AS test FROM users WHERE occupation = 'PIMP';
Run Code Online (Sandbox Code Playgroud)

谢谢!

select alias laravel eloquent laravel-3

10
推荐指数
1
解决办法
1万
查看次数

NextJs 和动态路由 - 如何处理空参数场景?

我试图在不使用查询字符串的情况下检索 url 参数,例如,http://localhost:3000/test/1这是我到目前为止所拥有的:

目录结构

test
 - [pageNumber].jsx
Run Code Online (Sandbox Code Playgroud)

索引.jsx

import React from 'react';
import { useRouter } from 'next/router';

const Index = () => {
  const router = useRouter();

  return (
    <>
      <h1>Page number: {router.query.pageNumber}</h1>
    </>
  );
};

export default Index;
Run Code Online (Sandbox Code Playgroud)

它可以工作,但如果我省略 pageNumber 参数,我得到的只是 404 页面,这是我们使用查询字符串时不存在的问题。

现在的问题是:是否可以在不创建额外的 index.jsx 页面和重复代码来处理空参数场景的情况下对此进行排序?

reactjs next.js dynamic-routing

10
推荐指数
1
解决办法
4692
查看次数

SmarTvs中的浏览器:他们使用哪种引擎?

我一直在寻找一段时间,但我找不到足够好的答案.我决定为这种平台验证我的布局,但从未想过它们会如何出现在这种电视上.

所以我想知道SmarTV是否使用了一些现有的引擎,如Webkit,Mozilla,Presto,甚至Trident(希望不是),或者他们是否使用自己的引擎,至少对于以下制造商:

  • 索尼
  • 三星
  • LG
  • AOC

这些是我国最常见的.

非常感谢!

browser samsung-smart-tv smart-tv

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

PowerShell - 批量更改文件编码为UTF-8

我正在尝试做一个简单的事情:将文件编码从任何东西更改为UTF-8而不使用BOM.我找到了几个执行此操作的脚本,唯一真正适合我的脚本就是这个:https://superuser.com/questions/397890/convert-text-files-recursively-to-utf-8-in-powershell#回答-397915.

它按预期工作,但我需要生成的文件没有BOM.所以我尝试稍微修改脚本,添加给出这个问题的解决方案:使用PowerShell以UTF-8编写一个没有BOM的文件

这是我的最终剧本:

foreach ($i in Get-ChildItem -Recurse) {
    if ($i.PSIsContainer) {
        continue
    }

    $dest = $i.Fullname.Replace($PWD, "some_folder")

    $Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding($False)

    if (!(Test-Path $(Split-Path $dest -Parent))) {
        New-Item $(Split-Path $dest -Parent) -type Directory
    }

    get-content $i | out-file -encoding $Utf8NoBomEncoding -filepath $dest
}
Run Code Online (Sandbox Code Playgroud)

问题是,对于System.Text.UTF8Encoding($False)线路,powershell返回一个错误,抱怨参数不正确:

无法验证"编码"参数的参数.参数"System.Text.UTF8Encoding"不属于ValidateSet属性指定的组"unicode,utf7,utf8,utf32,ascii".

我想知道我是否遗漏了一些东西,比如powershell版本或类似的东西.我以前从未编写过Powershell脚本,所以我完全迷失了.而且我需要更改这些文件编码,其中有数百个,我不想一个接一个地自己做.

实际上我正在使用Windows 7附带的2.0版本.

提前致谢!

编辑1

我尝试了以下代码,由@LarsTruijens和其他帖子建议:

$Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding($False)
foreach ($i in Get-ChildItem -Recurse) {
    if ($i.PSIsContainer) {
        continue
    }

    $dest = $i.Fullname.Replace($PWD, "some_folder")

    if (!(Test-Path …
Run Code Online (Sandbox Code Playgroud)

powershell encoding batch-file utf-8

9
推荐指数
1
解决办法
3万
查看次数

JavaScript:Reflect.get()和obj ['foo']之间的区别

无法理解为什么我应该使用Reflect.get(obj, 'foo')而不是obj['foo'],或为什么第一个是有用的,因为我们可以使用旧的和旧的对象括号表示法做同样的事情.有人可以详细说明吗?

var obj = {foo: 'bar'};
obj['foo'];
Reflect.get(obj, 'foo');
Run Code Online (Sandbox Code Playgroud)

javascript reflection

9
推荐指数
2
解决办法
873
查看次数

date-fns:如何定义应用程序范围内的默认区域设置?

在每个函数调用的基础上设置区域设置非常简单:

import { formatRelative, subDays } from 'date-fns'
import { ptBR } from 'date-fns/locale'

formatRelative(subDays(new Date(), 3), new Date(), { locale: ptBR })
Run Code Online (Sandbox Code Playgroud)

但是如何设置在应用程序范围内使用的默认区域设置?

javascript date-fns

7
推荐指数
2
解决办法
2万
查看次数

Intersection Observer:它可以用来检测容器中两个元素之间的碰撞吗?

在下面的示例代码中,isIntersecting总是true,可能是因为相交的主题是父对象本身。

有没有办法使用 IntersectionObserver 来检测两个盒子之间的相交/碰撞?

我们的想法是使用这个内置 API,因为每当任何框位置发生更改时都需要检查交叉点;在原始代码中,它们从一个位置转换到另一个位置,并在检测到碰撞时立即做出反应。例如,这将是轮询的一个有趣的替代方案。

任何想法都会很棒。

/** @type {HTMLDivElement[]} */
    const elements = Array.from(document.getElementsByClassName('box'));

    const observer = new IntersectionObserver((entries) => {
      entries.forEach((entry) => {
        if (entry.isIntersecting) {
          console.log(
            `${entry.target.className} is overlapping with another element`
          );
        }
      });
    });
    
    console.log('elements', elements);

    elements.forEach((div) => observer.observe(div));
Run Code Online (Sandbox Code Playgroud)
#container {
  width: 150px;
  height: 150px;
  position: relative;
  background-color: aqua;
}

.box {
  width: 32px;
  height: 32px;
  border: 1px solid #333;
  background-color: yellow;
  position: absolute;
}
Run Code Online (Sandbox Code Playgroud)
<div id="container">
  <div class="box" style="left: 8px; …
Run Code Online (Sandbox Code Playgroud)

javascript intersection-observer

7
推荐指数
0
解决办法
850
查看次数

从父顶部获取子元素距离

子级与顶级父级的距离

假设我<li>在可滚动 div 中有一个元素,并且滚动设置为在视口中显示该元素。

我需要得到该元素及其滚动母公司之间的距离,如上面的图片,但两者element.getBoundingClientRect().topelement.offsetTop给我错误的价值观。可以做到吗?

我做了一支笔,让事情变得简单一点:

http://codepen.io/Darksoulsong/pen/LbYMex

我的一段代码:

document.addEventListener("DOMContentLoaded", function(event) { 
  var selectedEl = document.getElementById('consequatur-51');
  var selectedElRect = selectedEl.getBoundingClientRect();
  var sidebar = document.getElementById('sidebar');  
  sidebar.scrollTop = selectedEl.offsetTop - 60;

  document.getElementById('offsetTop').innerText = selectedEl.offsetTop;
  document.getElementById('rectTop').innerText = selectedElRect.top;
});
Run Code Online (Sandbox Code Playgroud)

html javascript

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