Tag: node.js

必须res.end()与node.js快速调用?

我有几个Express应用程序,并且我看到在某些模块中, res.end()在请求处理程序(在res.send或res.json )的末尾被调用,而在另一些模块中则不被调用。 例如: app.get('/test', function(req, res) { res.send('Test', 200); }); 要么: app.get('/test', function(req, res) { res.send('Test', 200); res.end(); }); 这两种情况都有效,但是当我运行很多请求时,我担心泄漏或者文件描述符或者类似的东西。 哪一个更“正确”?

如何与node.js一起使用jQuery ajax调用

这与使用Node.js的Stream数据类似,但我不觉得这个问题得到了充分的回答。 我试图使用jQuery ajax调用(get,load,getJSON)在页面和node.js服务器之间传输数据。 我可以从我的浏览器中打开地址,看到“Hello World!”,但是当我从我的页面尝试这个时,它失败了,并且显示我没有回应我设置了一个简单的testing页面和hello世界的例子来testing这个: <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <title>get test</title> </head> <body> <h1>Get Test</h1> <div id="test"></div> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.js"></script> <script> $(document).ready(function() { //alert($('h1').length); $('#test').load('http://192.168.1.103:8124/'); //$.get('http://192.168.1.103:8124/', function(data) { // alert(data); //}); }); </script> </body> </html> 和 var http = require('http'); http.createServer(function (req, res) { console.log('request received'); res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(8124);

如何在node.js中设置默认时区?

如何在node.js中设置默认时区?

如何判断npm包是全局还是本地安装的

我正在windows7上安装grunt,node,npm,bower和grunt-cli。 说明说我应该运行带有-g标志的全局安装命令。 如何检查我安装时是否使用了-g标志。 卸载并重新安装需要很长时间。

为什么绑定比闭包慢?

以前的海报在Javascript中使用Function.bind vs Closure问题:如何select? 并收到了这个答案的一部分,这似乎表明绑定应该比closures更快: 范围遍历意味着,当您要获取存在于不同范围内的值(variables,对象)时,因此会增加额外开销(代码执行速度会变慢)。 使用绑定,你正在调用一个现有的范围的函数,所以范围遍历不会发生。 两个jsperfs表明绑定实际上比闭包慢得多。 这是作为对上述评论发布 而且,我决定写我自己的jsperf 那么为什么要这么慢(铬含量70%以上)呢? 既然速度不快,closures可以达到同样的目的,应该避免绑定?

Node.js:如何使用SOAP XML Web服务

我想知道使用node.js来使用SOAP XML Web服务的最佳方式是什么 谢谢!

为什么javascript node.js不在谷歌应用程序引擎上

Google创build了V8 JavaScript引擎:V8首次执行时,将JavaScript源代码直接编译为机器代码。 Node.jsbuild立在V8之上 – Google为什么不提供像Microsoft Azure这样的Node.js服务器? Google App Engine将是一个放置Node.js的自然地方。 你知道Google为什么不这么做吗?

Mongoose和单个node.js项目中的多个数据库

我正在做一个包含子项目的Node.js项目。 一个子项目将有一个Mongodb数据库,Mongoose将用于包装和查询数据库。 但问题是 Mongoose不允许在单个mongoose实例中使用多个数据库,因为模型是在一个连接上构build的。 为了使用多个mongoose实例,Node.js不允许多个模块实例,因为它在require()具有caching系统。 我知道在Node.js禁用模块caching,但我认为这不是一个好的解决scheme,因为它只需要mongoose。 我试图在mongoose中使用createConnection()和openSet() ,但这不是解决scheme。 我试图深入复制mongoose实例( http://blog.imaginea.com/deep-copy-in-javascript/ )传递新的mongoose实例到子项目,但它RangeError: Maximum call stack size exceeded 。 我想知道是否有任何使用mongoose或任何解决方法为这个问题使用多个数据库? 因为我认为mongoose是相当容易和快速的。 或者其他任何模块作为build议?

使用mocha和node.js对私有函数进行unit testing

我正在使用摩卡来testing为node.js编写的应用程序 我想知道是否可以unit testing没有在模块中导出的函数。 例: 我在foobar.js定义了很多这样的函数 function private_foobar1(){ … } function private_foobar2(){ … } 和一些作为公众出口的function: exports.public_foobar3 = function(){ … } testing用例的结构如下: describe("private_foobar1", function() { it("should do stuff", function(done) { var stuff = foobar.private_foobar1(filter); should(stuff).be.ok; should(stuff)….. 显然这是行不通的,因为private_foobar1没有被导出。 unit testing私有方法的正确方法是什么? 摩卡是否有一些内置的方法来做到这一点?

如何与Socket.IO 1.x和Express 4.x共享会话?

如何与Socket.io 1.0和Express 4.x共享会话? 我使用Redis商店,但我相信这不重要。 我知道我必须使用中间件来查看cookie和获取会话,但不知道如何。 我搜查,但找不到任何工作 var RedisStore = connectRedis(expressSession); var session = expressSession({ store: new RedisStore({ client: redisClient }), secret: mysecret, saveUninitialized: true, resave: true }); app.use(session); io.use(function(socket, next) { var handshake = socket.handshake; if (handshake.headers.cookie) { var str = handshake.headers.cookie; next(); } else { next(new Error('Missing Cookies')); } });