首先,如果已经回答,我道歉;我一直在搜索和搜索,但我找到的任何东西都没有给我Eureka!那一刻......所以我来到这里。
我对Node和ES6很新,我希望从app.js文件中抽象出一些函数/方法。这样做......我创建了一个如下所示的类。
this.tryLogin(email, password)....
始终返回undefined。
我试过了:
构造函数()var self = this
中的并将其设置为self.tryLogin()...
无效
使用function UserHandler() {}....
并使用原型进行实验。
我的目标是创建一个JS“类”,我可以在类中INSIDE和OUTSIDE调用它自己的方法。
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
我最初通过ExpressJS调用handleLogin函数作为中间件:
app.post(default_data.login_form_action, UserHandler.handleLogin, function (request, response) {});
答案 0 :(得分:0)
我认为您应该返回调用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(){
});
}