我将使用S3来存储用户上传的照片.显然,我不会将图像文件提供给用户代理而不调整它们的大小.但是,不会有一种尺寸,因为一些缩略图会小于其他较大的预览.所以,我正在考虑制作一套标准尺寸,从最低16x16到最高1024x1024.这是解决这个问题的好方法吗?如果我以后需要新尺寸怎么办?你怎么解决这个问题?
我使用创建了server.key和server.csr文件openssl req -nodes -newkey rsa:2048 -keyout server.key -out server.csr.我用startssl.com创建了一个SSL证书,它给了我一个证书文件.然后在我的node.js应用程序中,我读取了密钥和证书文件:
var app = module.exports = express.createServer({
key: fs.readFileSync('server.key'),
cert: fs.readFileSync('server.cert')
});
Run Code Online (Sandbox Code Playgroud)
但是,现在我从我的应用程序得到一个空的响应,"没有收到数据"消息.可能是什么导致了这个?我对SSL非常新,以及它是如何工作的,所以非常感谢任何帮助.
更多信息:我在我的VPS服务器(生产服务器)上生成了两个文件,密钥和csr文件,现在我正在尝试让它们在我的localhost上工作(首先,在我将代码提交到生产之前;我有在进行git提交之前测试它是否有效).因此,可能是因为我的localhost(开发环境)与我的VPS服务器(生产环境)位于不同的域.可能是这种情况吗?如果是这样,我如何将其发送到localhost和生产环境使用相同证书的位置?
或者,您是否建议我为我的开发环境创建另一个证书?我看到的唯一问题是,我的开发环境没有域名,因为它是在本地完成的.为了简单起见,我宁愿使用相同的证书(即使这意味着一个破坏的锁图标或localhost上的东西).
我正在使用我的网络应用程序的联系页面,在我的Web应用程序平台(node.js)上使用模块(nodemailer)向我自己发送电子邮件.因为,我正在向自己发送电子邮件,如果我回复电子邮件,我将再次向自己发送电子邮件,而不是通过电子邮件标题中设置的"发件人"标题将其发送到电子邮件.我怎么能让客户(gmail,yahoo等)知道应该回复哪个电子邮件?
我正在使用Nodemailer模块为Node.js从Ubuntu Linux服务器进行发送.
我正在使用Nodemailer Node.js模块与sendmail连接.但是,当我通过Gmail帐户访问时,我的电子邮件会直接转到垃圾邮件文件夹.为什么我的电子邮件是狗屎?它必须与电子邮件的标题有关,但我不知道它可能是什么.
我对电子邮件和垃圾邮件过滤器的查找方式并不熟悉,所以有人可以向我提供一些需要注意的细节吗?
谢谢阅读.:)
你知道如果你去facebook.com并输入一个URL到状态更新textarea它会自动被检测到,Facebook将显示该URL /链接数据的一些快照?Facebook甚至不关心您是否输入带或不带协议的URL http://.
我想要复制这种行为.现在我有这个正则表达式:
((?:https?:\/\/)?)((?:[a-zA-Z0-9\-]+\.)+(?:com|org|net|gov|mil|biz|info|mobi|name|aero|jobs|museum|travel|[a-z]{2})(?:[a-z0-9\._\/~%\-\+&\#\?!=\(\)@]*)?(?:#?(?:[w]+)?)?)
Run Code Online (Sandbox Code Playgroud)
我用它来匹配在textarea中输入的URL.但是,它有误报; 它会匹配document.write(foo)哪个显然不是URL.
Facebook似乎没有这个问题.事实上,我可以在Facebook的textarea中键入"yahoo.com",它会将其识别为URL.但如果我键入"example.com",它就不会识别它.所以,这意味着Facebook必须做的不仅仅是正则表达式匹配.或者我错了吗?
总之,我想知道Facebook在做什么,我想知道如何复制它.非常感谢任何想法,技巧或解决方案.
谢谢阅读.
我可以匹配这个字符串
(xx)
Run Code Online (Sandbox Code Playgroud)
使用这个正则表达式
\([^()]*\)
Run Code Online (Sandbox Code Playgroud)
但它不匹配
(x(xx)x)
Run Code Online (Sandbox Code Playgroud)
所以,这个正则表达式会
\([^()]*\([^()]*\)[^()]*\)
Run Code Online (Sandbox Code Playgroud)
但是,这将无法匹配
(x(x(xx)x)x)
Run Code Online (Sandbox Code Playgroud)
但同样,这个新的正则表达式会
[^()]*\([^()]*\([^()]*\)[^()]*\)[^()]*
Run Code Online (Sandbox Code Playgroud)
在这里您可以注意到复制,第一个正则表达式的第一个正则表达式模式\(在第一个\)复制之后和最后一个复制之前并替换最中心[^()]*.当然,这最后一个正则表达式是不匹配的
(x(x(x(xx)x)x)x)
Run Code Online (Sandbox Code Playgroud)
但是,您可以随时复制替换中心[^()]*,[^()]*\([^()]*\)[^()]*就像我们为最后一个正则表达式所做的那样,并且它将捕获更多(xx)组.您添加到正则表达式的次数越多,它处理的越多,但它总是会受限于您添加的数量.
那么,你如何解决这个限制并捕获一组括号内的括号(或任何两个字符),其中可以包含额外的组?
我知道你可能会考虑使用
\(.*\)
Run Code Online (Sandbox Code Playgroud)
但这将匹配所有
(xx)xx)
Run Code Online (Sandbox Code Playgroud)
什么时候它应该只匹配子串(xx).
即使这样
\([^)]*\)
Run Code Online (Sandbox Code Playgroud)
不会匹配具有嵌套对的括号对
(xx(xx)xx)
Run Code Online (Sandbox Code Playgroud)
从这一点来说,它只会匹配(xx(xx).
那么可以编写一个可以匹配括号组的正则表达式吗?或者这是必须由例程处理的事情吗?
该解决方案必须适用于正则表达式的JavaScript实现
我有兴趣与Titanium 3.x合作开发iOS和Android应用程序.但是,我不喜欢基于Eclipse的IDE,并且根本不喜欢Titanium IDE.我喜欢Sublime Text,所以我想建立一个ST和Titanium的工作流程.
如何直接从Sublime Text运行我的应用程序?
我已经习惯了很快的网络开发工作流程; 代码,保存,测试,重复.有没有人建议如何获得相同类型的工作流程:我希望能够编写代码,保存代码,然后快速测试.有没有办法让构建过程更快?
我知道JWT是无状态令牌,它存储有关客户端声明的签名信息,并通过Authorization HTTP头传递给服务器.
我的问题是,当我们已经有客户端会话时,为什么我们需要JWT(https://github.com/mozilla/node-client-sessions)?客户端会话在概念上是相同的.它们是包含签名信息的cookie,经过验证后意味着cookie没有被调整过.此外,客户端会话存储在cookie中并通过Cookie HTTP头传递.只使用不同的词语是一样的.我错了吗?
那么,为什么JWT甚至到了?我可以理解,也许重点是标准化身份验证令牌的工作方式,但我们相处得很好,没有基于会话ID的标准(每个实现都以自己的方式做事).此外,为什么JWT不会使用cookie作为转移手段.使用cookie,您不需要为每个请求显式发送正确的头(简化Ajax请求).
我错过了什么吗?
什么是隐藏文本元素并用图像替换它的最佳方法,同时仍保持良好的SEO.我已经看到了负文本缩进,但我更喜欢绝对定位与负顶部.
所以我想知道哪个更适合SEO.大多数搜索引擎都会考虑具有绝对定位的负顶部的文本元素; 同样用于文本缩进?
示例如下:http : //jsfiddle.net/sammy/RubNy/
在div容器中向下滚动。然后单击窗口中的任意位置以隐藏该元素。然后再次单击以显示该元素。您会在Chrome / IE中注意到滚动已重置,但在Firefox中,滚动保持了您的原样。
Chrome / IE或Firefox的标准行为是什么?我应该将此报告给Chrome问题跟踪器吗?
在此先感谢您的帮助,新年快乐,再一次感谢您的欢呼,还有其他东西。= D
我正在尝试为我的登录表单实现"记住我"功能.大多数网站如何做到这一点?我假设大多数网站在选中复选框时动态更改会话cookie的expires或max-age字段.
那么,如何根据是否选中"记住我"复选框,更改cookie应该动态持续多长时间?
到目前为止,我有:
if (req.body.remember)
{
var thirtyDays = 30*24*60*60*1000;
req.session.cookie.expires = new Date(Date.now() + thirtyDays);
req.session.cookie.maxAge = thirtyDays;
}
else
{
req.session.cookie.expires = false;
req.session.cookie.maxAge = false;
}
console.log(req.session.cookie.expires, req.session.cookie.maxAge)
Run Code Online (Sandbox Code Playgroud)
这有效.但我不能选择不记住我; 由于某种原因,cookie永远存在.即使我删除了cookie(在chrome中)并且在没有记住我的字段的情况下登录,它仍然会在我关闭浏览器的会话时持续,即使它在Web检查器的cookie面板中说它是Session和console.log正在给出我'虚假,虚假'.
我显然做错了什么.我该怎么做?
提前致谢!:)
看起来上面的代码实际上是有效的.它似乎不起作用的原因是因为我可以选择在重新启动Chrome时重新打开浏览器选项卡.这导致Chrome永远不会删除浏览器会话cookie,并让我认为将cookie的到期时间设置为false并不会使它们成为浏览器会话cookie.
我想解释一下Connect.sid cookie在Connect Node.js框架中如何工作。我注意到它们的格式像
s:hash.signature
Run Code Online (Sandbox Code Playgroud)
我不明白当哈希值超过了用于从内存存储或Redis存储访问会话数据的能力时,如何使用签名。
另外,我不理解为什么s:cookie中的甚至是。目的是什么
我听说签名用于“签名”哈希。“签名”或“签名”到底是什么意思?我还需要对此过程进行解释。
谢谢!
当我对浮点数进行数学运算时,我永远无法理解JavaScript究竟发生了什么.我一直都很害怕使用小数,直到我尽可能地避开它们.但是,如果我知道在IEEE 754标准中幕后发生了什么,那么我将能够预测会发生什么; 有了可预测性,我会更自信,更不可怕.
可能有人给我一个简单的解释(如解释整数的二进制表示法简单就如何IEEE 754标准的作品,以及它如何使这种副作用:0.1 + 0.2 != 0.3?
非常感谢!:)
node.js ×4
cookies ×3
javascript ×3
css ×2
nodemailer ×2
regex ×2
session ×2
amazon-s3 ×1
behavior ×1
browser ×1
connect ×1
email ×1
express ×1
facebook ×1
https ×1
ieee-754 ×1
indentation ×1
jwt ×1
middleware ×1
photos ×1
position ×1
recursion ×1
scroll ×1
sendmail ×1
seo ×1
spam ×1
ssl ×1
standards ×1
sublimetext ×1
sublimetext2 ×1
text ×1
titanium ×1