我有以下功能来检查用户会话,看他们是否是员工.现在,我知道有更好的方法可以做到这一点,但我正在尝试制作一个与论坛软件相关的简单应用程序.
function isStaff(callback) {
$.ajax({
url: url
}).done(function(data) {
var session = $.parseJSON(data);
if (session.is_staff === 1) {
callback(true);
} else {
callback(false);
}
});
}
Run Code Online (Sandbox Code Playgroud)
假设编辑"post"(Handlebars)时,我正在使用此函数.
function compilePost(post) {
var source = $('#feed-item-template').html();
var template = Handlebars.compile(source);
var context = {
id: post.id,
content: post.text,
author: post.author,
date: $.timeago(post.date),
staff: function() {
isStaff(function(response) {
return response;
});
}
}
var html= template(context);
return html;
}
Run Code Online (Sandbox Code Playgroud)
这里的问题是,检查用户是否是工作人员的请求直到运行该函数之后才完成请求.
我知道Promise是async的替代方法:false,在请求发出的地方,响应在函数完成之前返回.
但我不知道如何将其转化为承诺.我试图学习它,但我坚持这个概念.谁可以给我解释一下这个?谢谢.
我正在尝试验证登录请求,它接受用户名(可以是电子邮件或用户名)和密码。我如何使用 Express-Validator 来做到这一点?
我正在阅读文档,验证器的工作方式是您必须将数据作为第二个参数传递。我不确定如何检查它是否也是用户名或密码。
router.post("/", (req, res) => {
const { nickname, password } = req.body;
// Create a new object based on email or username
const login = {};
if (nickname.indexOf('@') === -1) {
login.nickname = nickname;
} else {
login.email = nickname;
}
login.password = password;
// JWT Sign...
});
Run Code Online (Sandbox Code Playgroud)
通过验证器,我还想检查它是否是
试图
router.post("/", (req, res) => {
const { nickname, password } = req.body;
// Create a new object based on email or …Run Code Online (Sandbox Code Playgroud)