var a = new Map([[ 'a', 1 ]]);
a.get('a') // 1
var forStorageSomewhere = JSON.stringify(a);
// Store, in my case, in localStorage.
// Later:
var a = JSON.parse(forStorageSomewhere);
a.get('a') // TypeError: undefined is not a function
Run Code Online (Sandbox Code Playgroud)
不幸的是JSON.stringify(a);
简单地返回'{}',这意味着当恢复时它变成一个空对象.
我发现es6-mapify允许在Map和普通对象之间进行向上/向下转换,因此这可能是一个解决方案,但我希望我只需依靠外部依赖来持久保存我的地图.
我犯了一个错误,并开始提交"到最后一个标签",它将我的提交放在"无分支"中.它们本应应用于现有分支机构的负责人.我还没有推动我的改变.我发现了一些其他问题,当提交在错误的分支中时,但现在我没有分支,所以我不知道如何处理这个问题.
最好,我想完全抹去我的错误,并将我的更改"移动"到右分支的末尾.如果我必须在历史中留下我的错误,我需要至少合并它们.
tl; dr:如何在.conf或.htaccess文件中执行以下操作:
<IfApache22>
# Do A
</IfApache22>
<IfApache24>
# Do B
</IfApache24>
Run Code Online (Sandbox Code Playgroud)
更长的问题:
在Apache 2.4中,旧的Order被弃用而不是Require.
在我的.htaccess文件中
<FilesMatch "\.(long|list|file|types)$">
Order allow,deny
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)
这意味着除非启用access_compat,否则Apache无法启动.虽然这样做提供了一个有用的解决方法,但我想要一个适用于这两种语法的解决方案,因为配置将分发给许多服务器.问题是如何检测Apache的当前版本并应用正确的指令.
我打算将该文件用于许多人分发和使用的框架,我无法控制/保证他们有或没有任何特定的服务器设置,这就是为什么我希望文件是2.2/2.4"不可知论".
我已经开始了一个新项目,我使用Composer来处理一些依赖项,以及它们的自动加载.
我只将composer.json文件保存在VCS中,而不是整个供应商目录中,所以我不想开始在那里添加我的代码.
我应该如何处理我自己的项目特定代码,以便它自动加载?
我正在使用Node.js 0.6.9,我正在尝试发送数据报广播包.码:
var sys = require('util');
var net = require('net');
var dgram = require('dgram');
var message = new Buffer('message');
var client = dgram.createSocket("udp4");
client.setBroadcast(true);
client.send(message, 0, message.length, 8282, "192.168.1.255", function(err, bytes) {
client.close();
});
Run Code Online (Sandbox Code Playgroud)
运行代码:
$ node test.js
node.js:201
throw e; // process.nextTick error, or 'error' event on first tick
^
Error: setBroadcast EBADF
at errnoException (dgram.js:352:11)
at Socket.setBroadcast (dgram.js:227:11)
at Object.<anonymous> (/home/letharion/tmp/collision/hello.js:25:8)
at Module._compile (module.js:444:26)
at Object..js (module.js:462:10)
at Module.load (module.js:351:32)
at Function._load (module.js:310:12)
at Array.0 (module.js:482:10)
at EventEmitter._tickCallback …
Run Code Online (Sandbox Code Playgroud) 当通过在PHP 5.4上测试它的"面向未来"代码时,我得到一个我不明白的警告.
function __clone() {
$this->changed = TRUE;
foreach ($this->conditions as $key => $condition) {
if (
$condition['field']
instanceOf QueryConditionInterface) {
$this->conditions[$key]['field'] = clone($condition['field']);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我爆发了$condition['field']
自己的行来减少要关注的代码量.关于那条特定的行,PHP就是这么说的
警告:非法串偏移
'field'
在DatabaseCondition->__clone()
而我只是看不出'field'是一个非法的字符串偏移.我猜我只是遗漏了一些明显的东西,但如果社区找不到问题,我会提交错误报告.
我将警告解释为" 在任何情况下'字段'都是有效密钥 ".如果我曾尝试过将数组作为键,那么这个错误就有意义了.
我将我的分支合并为主人,推了推,认为一切都很顺利.原来代码有问题,我想要一种方法来恢复合并提交,或整个分支,以更合适的方式,以便其他人可以轻松地继续工作,就好像我的合并从未发生过.
然后我打算修复我的分支,然后再将它合并.阅读man git-revert
表明,如果我使用-m来恢复整个分支,我将能够重新合并.
将UTF-8编码的字符串插入UTF-8编码表会产生不正确的字符串值.
PDOException:SQLSTATE [HY000]:常规错误:1366字符串值不正确:'\ xF0\x9D\x84\x8E i ...'第1行的列'body_value':INSERT INTO
我有一个 character, in a string that mb_detect_encoding claims is UTF-8 encoded.
I try to insert this string into a MySQL table, which is defined as (among other things)
DEFAULT CHARSET=utf8
编辑: Drupal总是SET NAMES utf8
使用可选项COLLATE
(至少在与MySQL交谈时).
编辑2:一些看似相关的细节.我从PostgreSQL数据库中获取了一些文本.我将它粘贴到一个对象上,使用mb_detect_encoding验证它是UTF-8,并使用node_save将对象持久保存到数据库.因此,虽然存在触发导入的HTTP请求,但数据不是来自浏览器.
编辑3:数据在两个表上非规范化:
SELECT character_set_name FROM information_schema.
COLUMNS
C WHERE table_schema ="[database]"AND table_name IN("field_data_body","field_revision_body")AND column_name ="body_value";
>+--------------------+
| character_set_name |
+--------------------+
| utf8 |
| utf8 |
+--------------------+
Run Code Online (Sandbox Code Playgroud)
编辑4:这个角色可能是"新的"吗?我对unicode和UTF-8之间的关系有点模糊,但这篇 …
我大致有以下几点:
componentDidMount() {
document.querySelector('body')!.addEventListener('click', this.click);
}
click = (e: Event) => {
if (this.state.toggled) {
if (!ReactDom.findDOMNode(this.someRef).contains(e.target)) {
this.setState({ toggled: false });
}
}
};
render() {
return (<CustomElement
ref={(e) => { this.someRef = e; }}
/>)
}
Run Code Online (Sandbox Code Playgroud)
此代码正确检测用户是否在CustomElement内部或外部单击,到目前为止一切顺利.
但是,tsc
对此并不满意:
error TS2345: Argument of type 'EventTarget' is not assignable to parameter of type 'Node'.
Property 'attributes' is missing in type 'EventTarget'.
Run Code Online (Sandbox Code Playgroud)
综观node_modules/typescript/lib/lib.d.ts
这是有意义的,因为e.target
是EventTarget
它似乎仅限定用于添加和移除事件处理程序的功能.但是,MDN表示e.target是"对调度事件的对象的引用".这听起来更接近我想要的.
那么如何保持当前正在运行的功能,同时使tsc满意(而不是仅仅消除错误)?
鉴于:
body = document.getElementsByTagName('body')[0];
iframe = document.createElement('iframe');
iframe.src = protocol + settings.scriptUrl + a;
iframe.height = 1;
iframe.width = 1;
iframe.scrolling = 'no';
iframe.frameborder = 0;
iframe.style = 'display:none';
body.appendChild(iframe);
Run Code Online (Sandbox Code Playgroud)
我在使用严格模式在Safari中测试时看到TypeError: Attempted to assign to readonly property.
了这一点iframe.style =
.
虽然可能需要一个setter或类似的东西.style
,我似乎无法找到任何关于这是一个要求的信息,我也无法找到我应该做什么的建议.
一些搜索引导我到CSSStyleDeclaration.setProperty(),这可能是我想要的,但我不确定.即使这是正确的事情,我仍然没有找到关于哪个浏览器支持这个的任何信息; 或者如何确保它在有/没有严格模式和新/旧浏览器中都有效.
javascript ×3
php ×3
git ×2
.htaccess ×1
apache ×1
branch ×1
commit ×1
composer-php ×1
css ×1
dictionary ×1
drupal ×1
ecmascript-6 ×1
git-branch ×1
json ×1
merge ×1
mysql ×1
node.js ×1
typescript ×1