小编dth*_*ree的帖子

JS - 创建对象速记

拿下面的对象:

var value = 'bar';
var obj = { foo: value }
// -> Object { foo="bar" }
Run Code Online (Sandbox Code Playgroud)

假设密钥也是一个变量,可以去:

var key = 'foo', value = 'bar';
var obj = {}
obj[key] = value;
// -> Object { foo="bar" }
Run Code Online (Sandbox Code Playgroud)

现在,我想在一行(速记)中这样做.所以我尝试过:

var obj = {}[key] = value; // or,
var obj = ({})[key] = value; // or,
var obj = new Object()[key] = value;
// -> "bar"
Run Code Online (Sandbox Code Playgroud)

这奇怪地产生一个String而不是一个Object.

有没有办法做这个简写?

javascript syntax shorthand

4
推荐指数
2
解决办法
1592
查看次数

获取 - 响应预检响应

我正在努力通过 CORS 获取授权:

const token = 'this.is.secret!';
fetch('http://corsserver/api/hello', {
    method: 'get',
    credentials: 'include',
    mode: 'cors',
    headers: {
        'Authorization': `Bearer ${token}`,
        'Content-Type': 'application/x-www-form-urlencoded'
    }
}).then(response => {
  console.log(response);
}).catch(error => {
  console.log(error);
});
Run Code Online (Sandbox Code Playgroud)

当我运行此请求时,Chrome 将标头设置为:

Request Method:OPTIONS

我查了一下,这是一个预检请求

我的意思是,这真的很酷。但是,我不知道如何在预检回来后发送实际请求,好吧!下一步是什么?如何发送 GET 请求?

我在这里遗漏了一些非常基本的东西。

javascript cors preflight fetch-api

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

Node.js/Connect使用现有的Connect.SID

我有鸡和鸡蛋的问题.

我使用Node.js HTTPServer将Web请求路由到不同的Node.js工作者,具体取决于它们在请求标头中发送的Connect.SID cookie.

我的每个Node.js工作者都使用Connect/Express,并在第一次连接请求时分配Connect.SID cookie.

问题

显然,如果请求具有未向该节点实例注册的Connect.SID,则Connect会分配新ID.

所以,我有一个新的Connect.SID.我的HTTP代理记录ID 12345并将其路由到工作人员#5.Worker#5将新的ID 56344发送回浏览器.下一个浏览器请求 - HTTP代理看到一个全新的ID - 56344 - 记录它并发送给Worker#6.工人#6看到新的SID和....

Connect Session中间件太......简单......

app.use(express.cookieParser());
app.use(express.session({ secret: "niceTry", cookie: { /* ... */ } }));
Run Code Online (Sandbox Code Playgroud)

有没有办法将逻辑注入到新的会话ID的分配中,如果已经有未注册但有效的Connect.SID,它会跳过它?

cookies http-proxy node.js connect.js

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

JS - 使用正则表达式获取字符串替换的原始值

我们有一个字符串:

var dynamicString = "This isn't so dynamic, but it will be in real life.";
Run Code Online (Sandbox Code Playgroud)

某些输入中的用户类型:

var userInput = "REAL";
Run Code Online (Sandbox Code Playgroud)

我希望匹配此输入,并用跨度包装以突出显示它:

var result = " ... but it will be in <span class='highlight'>real</span> life.";
Run Code Online (Sandbox Code Playgroud)

所以我使用一些RegExp魔术来做到这一点:

// Escapes user input,
var searchString = userInput.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");

// Now we make a regex that matches *all* instances 
// and (most important point) is case-insensitive.
var searchRegex = new RegExp(searchString , 'ig');

// Now we highlight the matches on the dynamic string:
dynamicString = …
Run Code Online (Sandbox Code Playgroud)

javascript regex

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

在输入占位符中加下划线的单个字母

可以将CSS样式应用于占位符,例如Firefox:

::-moz-placeholder { text-decoration: underline; }
Run Code Online (Sandbox Code Playgroud)

但是,我想要做的是在占位符中用单个字母加下划线,以便暗示热键供用户按下(类似于文件菜单中的Windows),例如FFirst Name下面加下划线:

<input type='text' placeholder='First Name' />
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?

css placeholder underline

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

棘手的正则表达式解析键值对

我花了一个多小时搞乱正则表达式模式,以便让find-and-replace一个复杂的字符串正常工作.

我需要像这样转换一个字符串:

foo a='b' c="d and e" wombat=true a fizz='buzz' "hello='goodbye'"
Run Code Online (Sandbox Code Playgroud)

并将其标准化为:

foo "a='b'" "c='d and e'" "wombat='true'" a "fizz='buzz'" "hello='goodbye'"
Run Code Online (Sandbox Code Playgroud)

在本质上:

  • key/value对都应该用双引号括起来,值用单引号括起来,不管它们之前是如何包装的.

  • 多间隔值必须先包装在单引号或双引号中,以便"包含"为值.


到目前为止,我正按照以下顺序玩正则表达式:

str = str.replace(/([a-zA-Z0-9]*)=("(.*?)"|'(.*?)')/g, '"$1=\'$2\'');
Run Code Online (Sandbox Code Playgroud)

但是,这有很多问题.

这有什么单一替代解决方案吗?

javascript regex

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

如何将命令分成文件Vorpal.js

我有很多命令,每个命令都很长.例如,我有:

  • create
  • read
  • update
  • delete

我想把它们放在单独的文件中:

  • ./commands/create.js
  • ./commands/read.js
  • ./commands/update.js
  • ./commands/delete.js

我想要他们app.js:

require('./commands/create.js');
// ...
Run Code Online (Sandbox Code Playgroud)

所以我可以:

node app.js create HelloWorld
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

vorpal.js

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

使用cygwin在Windows上安装GMP

我是C++的新手,我必须处理大整数,所以我必须通过Cygwin安装GMP.

我在安装时可以找到的任何文档都假设你知道你在说什么,而我却不知道.

无论如何,我得到了正确的.tar或其他什么,正确地提取它,现在我看到的任何网站都说要运行./configure --prefix=${gmp_install}...

世界上到底是gmp_install什么?我configure从哪个目录运行?咦?我可以从我的小Cygwin终端运行它,但它只是说没有这样的文件.

接下来,我应该输入make.来自哪里?

救命...

c++ cygwin makefile autotools gmp

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

为什么没有标准的方法来格式化javascript中的日期对象?

我有一个javascript日期对象,并希望像这样格式化它

2014-12-18
Run Code Online (Sandbox Code Playgroud)

喜欢,%Y-%m-%d但我似乎无法找到"一次实现这一目标的好方法.为什么javascript没有strftime功能?我怎样才能实现我想要的?

javascript date

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

在Powershell中解析字符串

学习powershell,试图找出如何从这个结果集解析第一个值(10.60.50.40):

IPAddresses
-----------
{10.60.50.40, fe80::5ddf:a8f4:e29c:b66}
Run Code Online (Sandbox Code Playgroud)

通常我会查一查,但是,我不知道{x,x}是否是Powershell陆地上的标准数据类型.

我是否必须进行粗略的字符串解析,或者是否有一些标准命令来提取第一个,例如:

... | Select-Object IPAddresses | Select-String [0]
Run Code Online (Sandbox Code Playgroud)

(我只是将选择的字符串组合起来.我迷路了.)

powershell

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