哪里可以(我可以?)找到最新版Node.js的.deb包吗?
如果没有,并且因为它是一个进展非常快的项目,那么跟上Node.js发布的最简单方法是什么?
我想出来了
function keysToLowerCase (obj) {
var keys = Object.keys(obj);
var n = keys.length;
while (n--) {
var key = keys[n]; // "cache" it, for less lookups to the array
if (key !== key.toLowerCase()) { // might already be in its lower case version
obj[key.toLowerCase()] = obj[key] // swap the value to a new lower case key
delete obj[key] // delete the old key
}
}
return (obj);
}
Run Code Online (Sandbox Code Playgroud)
但我不确定v8将如何表现,例如,它是否真的会删除其他键,还是只会删除引用,垃圾收集器会在以后咬我?
另外,我创建了这些测试,我希望你能在那里添加你的答案,这样我们就能看出它们是如何匹配的.
编辑1: 显然,根据测试,如果我们不检查密钥是否已经是小写,但是速度更快,它会更快,它是否会通过忽略这个而只是创建新的小写密钥来创建更多的混乱?垃圾收集者会对此感到满意吗?
从节点REPL的事情,
> d = {}
{}
> d === {}
false
> d == {}
false
Run Code Online (Sandbox Code Playgroud)
鉴于我有一个空字典,我如何确保它是一个空字典?
我很想知道,因为Clojure Compiler和UglifyJS不仅可以优化代码大小而且还可以优化性能(虽然我认为大小是主要优先级),如果我的node.js应用程序被缩小,我的运行速度会更快吗?我知道它可能取决于应用程序,但我一般都会问这个问题.
我正在尝试使用类似于Joyent使用的NodeJS编写REST-API服务器,除了我无法验证普通用户的身份验证之外,一切正常.如果我跳到终端并且这样做curl -u username:password localhost:8000 -X GET,我就无法在NodeJS http服务器上获得值username:password.如果我的NodeJS http服务器是这样的
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(1337, "127.0.0.1");
Run Code Online (Sandbox Code Playgroud)
,我不应该在来自回调的req对象中获取值username:password 吗?如何在不使用Connect的基本http auth的情况下获取这些值?
这是我要做一个简单的GET请求的代码:
var options = {
host: 'localhost',
port: 8000,
path: '/restricted'
};
request = http.get(options, function(res){
var body = "";
res.on('data', function(data) {
body += data;
});
res.on('end', function() {
console.log(body);
})
res.on('error', function(e) {
console.log("Got error: " + e.message);
});
});
Run Code Online (Sandbox Code Playgroud)
但是该路径"/ restricted"需要简单的基本HTTP身份验证.如何添加凭据进行身份验证?我在NodeJS手册中找不到与基本http认证相关的任何内容.提前致谢.
authentication restful-authentication http basic-authentication node.js
是ws://myserver.com/path?param=1有效的WebSocket地址吗?
地址http://myserver.com/path?param=1(注意它现在http而不是ws)可以正常使用wscat,但是我无法在浏览器上运行它.
所以我有这个简单的代码:
function Run () {
var n = 2*1e7;
var inside = 0;
while (n--) {
if (Math.pow(Math.random(), 2) +
Math.pow(Math.random(), 2) < 1)
inside++;
}
return inside;
}
var start = Date.now();
Run();
console.log(Date.now() - start);
Run Code Online (Sandbox Code Playgroud)
它会输出大约335毫秒的时间.那很不错.但是,如果我像这样封装Run函数:
var d = Date.now();
(function Run () {
var n = 2*1e7;
var inside = 0;
while (n--) {
if (Math.pow(Math.random(), 2) +
Math.pow(Math.random(), 2) < 1)
inside++;
}
return inside;
})();
console.log(Date.now() - d);
Run Code Online (Sandbox Code Playgroud)
它将输出18319ms,这比以前的情况要糟糕得多.为什么是这样 ?
此外,如果重要,我在控制台的Chrome 26.0.1410.63上运行它.在node.js上,两个片段在控制台上都表现良好.
javascript compiler-construction optimization performance v8
node.js ×6
javascript ×5
http ×3
performance ×2
64-bit ×1
compilation ×1
dictionary ×1
html5 ×1
integer ×1
match ×1
minify ×1
object ×1
optimization ×1
post ×1
put ×1
rest ×1
ubuntu ×1
uglifyjs ×1
v8 ×1
websocket ×1