首先,如果这件事已经被回答了,我很抱歉;我一直在寻找,但是我没有发现任何东西给了我尤里卡!moment...so我来这里。
我对Node和ES6很陌生,并希望从app.js文件中抽象出我的一些函数/方法。这样做.我创建了一个类似于下面的类。
this.tryLogin(email, password)....总是返回未定义的。
我试过:
在构造函数()var self = this中,并将其设置为self.tryLogin()...无效
使用function UserHandler() {}....和原型进行了实验。
我的目标是创建一个JS“类”,在这个类中,我能够在类内外调用它自己的方法。
class UserHandler {
constructor() {
this.aws_config = require("./aws-config");
}
redirectIfLoggedIn(request, response, next) {
if (request.session.user && request.session.user.id_token) {
if (request.query.redirect) {
response.redirect(request.query.redirect);
}
else {
response.redirect("/profile");
}
}
else {
next();
}
}
handleLogin(request, response, next) {
let form_data = request.body;
let email = request.body.email;
let password = request.body.password;
let remember_me = request.body.remember_me;
this.tryLogin(email, password).then(function () {
}).catch(function(){
});
}
tryLogin(username, password) {
return new Promise(function(resolve, reject) {
});
}
// Test function
pingPromise(string) {
return new Promise(function(resolve , reject) {
if (string == "ping") {
resolve("pong");
}
else {
reject(Error("You must send 'ping'!"));
}
});
}
}
module.exports = new UserHandler();编辑:
我试图解决的TypeError: Cannot read property 'tryLogin' of undefined错误
我最初将handleLogin函数作为中间件通过ExpressJS调用:
app.post(default_data.login_form_action, UserHandler.handleLogin, function (request, response) {});发布于 2017-06-07 19:35:00
我认为您应该返回调用this.tryLogin()的结果
handleLogin(request, response, next) {
let form_data = request.body;
let email = request.body.email;
let password = request.body.password;
let remember_me = request.body.remember_me;
return this.tryLogin(email, password).then(function () {
}).catch(function(){
});
}https://stackoverflow.com/questions/44421331
复制相似问题