如果我跑
Array.apply(null, new Array(1000000)).map(Math.random);
Run Code Online (Sandbox Code Playgroud)
在Chrome 33上,我明白了
RangeError: Maximum call stack size exceeded
为什么?
我收到以下错误:
events.js:48
throw arguments[1]; // Unhandled 'error' event
^
Error: socket hang up
at createHangUpError (http.js:1091:15)
at Socket.onend (http.js:1154:27)
at TCP.onread (net.js:363:26)
Run Code Online (Sandbox Code Playgroud)
在节点v0.6.6中,我的代码有多个http.request和.get调用.请建议如何跟踪导致套接字挂断的原因以及请求/呼叫的方式.谢谢
我刚开始使用nodeJS,对此并不了解.我也找到了mongoDB,我想在我的项目中使用它.我搜索了一个教程,但是有一些例子,我并不完全理解.你知道任何可以帮助我的教程吗?谢谢
对于交互式Web应用程序,Websockets等内容越来越受欢迎.但是,由于客户端和代理世界并不总是完全兼容,因此通常使用像"Socket.IO"这样的复杂框架,为任何可能禁用其他情况的情况隐藏几种不同的机制.
我只是想知道正确实现的长轮询的缺点是什么,因为今天的服务器就像node.js一样,它很容易实现,并且依赖于支持良好的旧http技术(尽管长轮询行为本身可能会破坏它).
从高级别来看,长轮询(尽管有一些额外的开销,对于中等流量应用程序可行)类似于WebSockets所做的真正的推送行为,因为服务器实际上在他喜欢的时候发送它的答案(尽管有一些超时/心跳机制).
因此,我认为由于TCP/IP确认更多,我们会有更多的开销,但是没有像频繁轮询那样的持续流量.
使用事件驱动的服务器,我们没有线程开销来阻止连接.
那么还有其他任何困难的下行方式会迫使像聊天这样的中等流量应用使用WebSockets而不是长时间的轮询吗?
我正在关注这个例子:http://brianstoner.com/blog/testing-in-nodejs-with-mocha/
我在根目录中定义了一个Makefile:
REPORTER = dot
test:
@NODE_ENV=test ./node_modules/.bin/mocha \
--reporter $(REPORTER) \
test-w:
@NODE_ENV=test ./node_modules/.bin/mocha \
--reporter $(REPORTER) \
--watch
.PHONY: test test-w
Run Code Online (Sandbox Code Playgroud)
但是当我运行'make test'时,它说"make:没有什么可以做'test'."
我正在尝试使用Jade编写一些动态CSS,如下所示:
style(type='text/css')
each item in colors
.#{item.class} { background-color : #{item.background}; color: #{item.foreground}; }
Run Code Online (Sandbox Code Playgroud)
但是,这会产生以下错误:
ReferenceError: media='print')
7| style(type='text/css')
> 8| - for(var item in colors)
9| .#{item.class} { background-color : #{item.background}; color: #{item.foreground}; }
10| block Content
11| include scheduleTemplate
item is not defined
Run Code Online (Sandbox Code Playgroud)
如果我删除样式标记,它会渲染得很好.有没有办法在样式块中使用迭代?
我是node.js的新手,并尝试使用焊接在服务器端渲染模板并使用express作为路由器.
但是,node.js的示例并未显示为内容提供服务,并且模糊了如何使用express:
var fs = require('fs'),
jsdom = require('jsdom');
jsdom.env(
'./test.html',
['./jquery.js', './weld.js'],
function(errors, window) {
var data = [{ name: 'hij1nx', title : 'code slayer' },
{ name: 'tmpvar', title : 'code pimp' }];
window.weld(window.$('.contact')[0], data);
}
);
Run Code Online (Sandbox Code Playgroud)
帮助或示例将不胜感激.
我在Express js app中处理错误时遇到了一些问题.
我的问题是我正在将流传递给响应,我不知道处理可读流中可能发生的错误的最佳方法是什么.
我正在使用errorHandler中间件,在路由中间件之后配置:
...
app.use(app.router);
app.use(express.errorHandler());
...
Run Code Online (Sandbox Code Playgroud)
这是我的路线:
exports.folders = function(req, res, next) {
//throw new Error("TEST ERROR");
var path = decodeURIComponent(req.params.path),
foldersStream = wd.listFolders(path);
foldersStream.on("error",function(err){
console.log("STREAM ERROR")
console.dir(next.name)
return next(err);
});
res.setHeader("content-type", "application/json");
foldersStream.pipe(res);
};
Run Code Online (Sandbox Code Playgroud)
如果我抛出TEST ERROR函数的主体,它将按照预期的方式处理errorHandler.
无论如何,如果在流中发出错误事件,则会调用错误事件处理程序,因为我可以在控制台中看到该消息,但errorHandler永远不会被调用.
如果我不处理错误事件,整个节点进程崩溃.如果我处理它,服务器会向客户端发送500响应,但errorHandler不会被调用,所以我错过了日志中的堆栈跟踪.
我做错了什么?
我想在网站上运行一个javascript,但是当我这样做时,什么都没有改变,我得到了pdf,好像我没有运行javascript的结果,这是我做的一个例子:
xvfb-run --server-args="-screen 0, 1024x768x24" wkhtmltoimage --run-script "javascript:(\$(function(){ \$("div").hide() ;}))" google.com google.png
Run Code Online (Sandbox Code Playgroud)
我还有没有jquery的脚本:
xvfb-run --server-args="-screen 0, 1024x768x24" wkhtmltopdf --run-script "javascript:(function(){ document.write("AHHHHHHHHHHHHHHHHHHHHHHHHHHHHH"); ;})" google.com p2.pdf
Run Code Online (Sandbox Code Playgroud)
但正如我所说,对pdf或png没有影响(因为我已尝试过wkhtmltoimage和wkhtmltopdf).
node.js ×6
javascript ×4
express ×2
access-token ×1
callstack ×1
css ×1
debugging ×1
html ×1
http ×1
jquery ×1
long-polling ×1
loopbackjs ×1
makefile ×1
mongodb ×1
networking ×1
pug ×1
socket.io ×1
sockets ×1
stream ×1
strongloop ×1
templating ×1
websocket ×1
wkhtmltopdf ×1