Tag: 连接

连接框架和socket.io有什么不同?

我是新来的node.js,所以我有一些关于连接框架和socket.io的问题: 有什么不同? 我很困惑。 我应该使用连接fw与socket.io或只是使用socket.io?

有人可以解释这一点:EventEmitter导致全局variables时失败

我花了一段时间试图诊断这个错误。 首先我创build了一个EventEmitter的子类 文件Client.js var bindToProcess = function(fct) { if (fct && process.domain) { return process.domain.bind(fct) } return fct }; function Client(){ EventEmitter.call(this); } util.inherits(Client, EventEmitter); Client.prototype.success = function(fct) { this.on('success', bindToProcess(fct)) return this; } Client.prototype.login = function(username, password) { body = { username : username, password : password }; var self = this; request.post(url, { […]

如何在cookie-session 1.0.2中传递cookie选项

我正在尝试学习Node的“cookie会话”模块。 https://github.com/expressjs/cookie-session 我很难理解如何传递cookie的选项。 例如到期。 默认似乎是一年! 这是关于cookie选项的说明: “其他选项传递给cookies.get()和cookies.set()允许您控制其他设置中的安全性,域,path和签名。 但我没有得到它! 我是否也需要cookies模块? 或者我以某种方式更改选项槽var session = require('cookie-session') ? 我已经尝试session.cookies.set() ,但似乎并没有工作。 我试图在“cookie-session”和“cookies”模块中读取源代码的线索,但是我不知道该找什么!

Socket.io客户端重新连接不起作用

我使用Socket.io在Node.js服务器和客户端网站之间进行通信。 一切都很好! 除了一件事。 我允许用户从Socket.io断开连接,稍后重新连接,或者至less我试图。 请记住,调用io()的套接字存储在mySocket中,使用mySocket.io.disconnect()可以正常断开连接。 服务器捕获它,客户端知道它已经断开连接,这很好。 问题是当我尝试稍后重新连接… 所以起初我只是试图再次设置mySocket=io() ,但失败了。 我知道有一个重新连接的方法,所以我尝试使用,并且我的问题变得更糟。 所以,现在我正在使用mySocket.io.reconnect() ,我得到了一些奇怪的结果,如下所述。 所以首先,服务器正在尝试重新连接。 正好赶上on('connection',…)事件。 然而,CLIENT似乎认为它从来没有重新连接 – 例如, mySocket.connected的值保持为false并且所有emit()调用失败(并且永远不会到达服务器)。 除了简单的mySocket.io.reconnect()之外,是否还有一些特殊的方法可以使用? 或者我应该设置一些variables或参数? 为什么我的服务器捕捉重新连接,如果客户认为它没有连接? 怎么回事,我该如何解决?

Node.js https在Cloud9中不起作用

我可以创build一个http服务器,它工作正常,但只要我尝试使用https而不是服务器,运行没有错误,但我根本无法连接到它。 HTTP(工作): http.createServer(app).listen(process.env.PORT, process.env.IP); HTTPS(不工作): var options = { key: fs.readFileSync('server.key'), cert: fs.readFileSync('server.crt') }; https.createServer(options, app).listen(process.env.PORT, process.env.IP); 这两种方法都没有错误,但是当我使用HTTPS时,访问网页时没有响应,服务器甚至没有收到请求。 从Cloud9环境中使用的端口有问题吗? 我试了好几个小时才弄清楚是什么问题,但还没有取得任何进展,希望有人能帮忙。

NodeJS自定义会话存储,清除过期的会话

我目前正在为ArangoDB(connect-arango)开发一个会话存储。 它几乎与MongoDB会话存储(connect-mongo,因此'connect-arango')的工作方式相同,但是问题是,ArangoDB没有内置TTL的条目。 MongoDB有这个,这不是一个问题。 但在ArangoDB中,我必须在会话存储区中执行此操作。 每60秒(使用setTimeout)检查过期的会话是否足够,或者我应该使用其他的东西,比如每次调用“get”函数时检查? 我将使用AQL查询来清除它们,类似这样: FOR s IN sessions FILTER s.expires < DATE_NOW() REMOVE s IN sessions 如果用户要清除他的cookies,那么会话永远不会被使用“get”函数访问,这意味着我无法检查它是否已经到期。 但是我能做的是在每次调用“get”函数的时候运行上面的查询,但是我觉得这样做是不必要的,并且会增加服务器的负担。 编辑:只要没有人误解,我知道如何清除过期的会话,我只是不知道如何经常运行清除function(在这种情况下,这是上面的AQL查询)。

我该怎么做这个错误:require('connect')。json()是未定义的

当我inputgulp test ,我得到这个错误: require('connect').json() is undefined. 。 我该怎么办? 详细错误信息如下: tianjiedeMacBook-Pro:meiyanapp tianjie$ gulp test /Users/tianjie/meiyanruhua/meiyanapp/node_modules/karma/lib/middleware/runner.js:11 var json = require('connect').json(); ^ TypeError: undefined is not a function at Object.<anonymous> (/Users/tianjie/meiyanruhua/meiyanapp/node_modules/karma/lib/middleware/runner.js:11:31) at Module._compile (module.js:460:26) at Object.Module._extensions..js (module.js:478:10) at Module.load (module.js:355:32) at Function.Module._load (module.js:310:12) at Module.require (module.js:365:17) at require (module.js:384:17) at Object.<anonymous> (/Users/tianjie/meiyanruhua/meiyanapp/node_modules/karma/lib/web-server.js:7:24) at Module._compile (module.js:460:26) at Object.Module._extensions..js (module.js:478:10)

在Express中仅为某些路由运行中间件的模式

什么是configuration我的中间件,以便只运行某些端点的最佳方式? 最好将中间件逐个添加到每个端点还是有更好的方法来创build可以处理它的configuration?

NodeJS mySQL连接到本地主机(NAS)

我正在创build一个在localhost:3000上运行的NodeJS应用程序。 我也正在尝试使用以下代码在Synology NAS上创build一个mySQL连接: var mysql = require('mysql'); var connection = mysql.createConnection({ host : '192.168.1.17', port : 3306, user : 'root', password : 'password' }); connection.connect( function(err) { if (err) console.log(err); else console.log('connected'); }); 不幸的是,控制台不断显示错误。 ER_ACCESS_DENIED_ERROR: Access denied for user 'root'@'192.168.1.15' 这里奇怪的是,我试图连接到192.168.1.17上的NAS站,但控制台说主机是.15 。 有人能解释我为什么吗? 我也google了这个问题,但是从这个堆栈主题为根用户授予权限的解决scheme似乎不起作用。 有人可以帮我吗?

无法理解Connect模块中的callback

我在读一本关于NodeJs Connect的书。 有关于basicAuth模块的这个小部分。 我知道basicAuth已经被弃用了,但是我不能理解这个简单的代码。 这本书说 提供asynchronouscallback函数 最后一个选项是类似的,除了这次callback传递给了带有三个参数的basicAuth(),这个参数可以使用asynchronous查找。 从磁盘上的文件进行身份validation或从数据库查询时,这非常有用。 代码清单7.7 连接basicAuth中间件组件进行asynchronous查找 而没有其他的信息。 这就是关于在basicAuth中进行callback的整个部分 所以,代码获取用户名和密码。 然后假设的对象User有一个方法来authendicate这个用户是否真的存在。 完成后,调用gotUser函数。 gotUser包含返回的错误(=找不到用户名/密码的用户)或返回的用户对象(用该用户名/密码find的用户)。 我对吗? gotUser检查是否有错误。 如果有,则返回并调用具有错误参数的callback 。 那么等一下,这个callback做什么呢? 它没有在任何地方定义 它将错误传递给error handling函数吗? 如何? 如果没有错误, gotUser再次用null (=没有错误)和user gotUser调用callback 。 再一次,callback会做什么? 为什么将返回的用户传递给callback,而不是获取其名称,邮件,年龄等,并在会话中使用它们,或填充标记的innerHTML或其他? 谢谢