我用Mongoose定义了一个实例方法来验证rep(用户):
RepSchema.methods.authenticate = function(password){
return this.encryptPassword(password) === this.hashed_password;
};
Run Code Online (Sandbox Code Playgroud)
在我的应用程序中,我找到代表并authenticate在其上调用方法:
var mongoose = require("mongoose");
var Rep = mongoose.model("Rep");
Rep.findOne({email: email}, function(err, rep){
if (rep.authenticate(req.body.session.password)){
req.session.rep_id = rep._id;
res.redirect('/calls', {});
}
});
Run Code Online (Sandbox Code Playgroud)
但是我收到此错误:
TypeError: Object { email: 'meltzerj@wharton.upenn.edu',
password: XXXXXXXXX,
name: 'meltz',
_id: 4fbc6fcb2777fa0272000003,
created_at: Wed, 23 May 2012 05:04:11 GMT,
confirmed: false,
company_head: false } has no method 'authenticate'
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
可能重复:
通过websocket接收图像
运用
imageData = context.getImageData(0, 0, width, height);
JSON.stringify(imageData.data);
Run Code Online (Sandbox Code Playgroud)
我抓取像素数据,将其转换为字符串,然后通过websockets通过电线发送.但是,此字符串可能非常大,具体取决于画布对象的大小.我尝试使用这里找到的压缩技术:Gzip的JavaScript实现但socket.io抛出错误Websocket message contains invalid character(s).是否有一种有效的方法来压缩这些数据,以便它可以通过websockets发送?
我正在探索使用node-http-proxy代理服务器,以便我可以让端口80上的代理服务器向端口8000上的应用服务器转发请求.但是,我有点困惑为什么这是个好主意这个设置究竟是什么能够防止安全问题.
note-http-proxy文档讨论了很多关于使用它作为向具有多个端口或IP地址的应用程序转发请求的方法.这显然非常有用,特别是对于基本的循环负载均衡器策略.但是,我们在一个端口上只有一个应用程序,因此我们无需执行此操作.
如果我们应该使用这个代理服务器有一个重要的安全原因,那么我很想知道它可以防范哪种类型的攻击.另外,我们正在使用socket.io,所以如果代理有一些东西可以帮助websocket服务器扩展,我也想了解它.我们无法确定如何运行我们的应用程序sudo(因为1024以下的所有端口都需要root访问权限),所以如果此时没有充分的理由使用代理服务器,我们只是要废弃.如果有人知道如何在没有root访问权限的端口80上使用代理服务器运行此应用程序,那么这也非常有用.谢谢!
如何使用Godaddy邮件在我的初始化程序文件中设置我的SMTP设置?
我想在Chrome中使用Mutation Observers来监控整个文档中的DOM更改.但是,我想将特定元素列入黑名单id.有没有办法做到这一点?
我正在重写javascript的核心方法之一:
Element.prototype._removeChild = Element.prototype.removeChild;
Element.prototype.removeChild = function(){
callback();
this._removeChild.apply(this,arguments);
}
Run Code Online (Sandbox Code Playgroud)
我想从动态重写的函数内部动态获取方法的名称(在本例中为"removeChild").我使用arguments.callee.name但它似乎没有返回任何东西,认为它只是一个匿名函数.如何获取分配匿名函数的函数的名称?
我正在使用vhost快速/连接中间件,我对它应该如何使用感到有点困惑.我希望有一组路由适用于具有子域的主机,另一组适用于不带子域的主机.
在我的app.js文件中,我有
var app = express.createServer();
app.use...(middlware)...
app.use(express.vhost('*.host', require('./domain_routing')("yes")));
app.use(express.vhost('host', require('./domain_routing')("no")));
app.use...(middlware)...
app.listen(8000);
Run Code Online (Sandbox Code Playgroud)
然后在domain_routing.js:
module.exports = function(subdomain){
var app = express.createServer();
require('./routes')(app, subdomain);
return app;
}
Run Code Online (Sandbox Code Playgroud)
然后在routes.js我计划运行多组路由,这取决于传入的子域变量是否为"yes"或"no".
我是在正确的轨道上还是这不是你如何使用这个中间件?我对app创建了两个服务器实例这一事实感到有点困惑(因为这就是网上的例子似乎在做什么).我是应该传入原始app服务器实例而只是使用它而不是创建一个单独的子域路由器?
我正在使用Supervisor来管理我的node.js应用程序在EC2实例上使用git进行部署.Supervisor可以很好地确保我的应用程序保持运行状态,但每当我将新的服务器端代码推送到远程服务器时,它往往无法识别这些更改.我需要杀死管理程序进程并重新启动它.有什么我做错了,还是这种标准行为?
假设您动态地将iframe插入到从跨域获取某些资源的页面中.它会阻止任何当前正在执行的javascript,还是javascript会在加载并呈现其内容时继续运行?
javascript ×6
node.js ×3
express ×2
ruby ×2
actionmailer ×1
asynchronous ×1
canvas ×1
compression ×1
dom ×1
dynamic ×1
function ×1
html ×1
iframe ×1
instance ×1
middleware ×1
mongodb ×1
mongoose ×1
monitoring ×1
nodejitsu ×1
proxy ×1
socket.io ×1
subdomain ×1
supervisord ×1
websocket ×1