我有一个注册和登录表单,正在使用 ejs 呈现为 View , 我已经获得了一些要调用的 api 端点,并且我已将它们添加到其 ejs 表单操作 View 中 当我在 ejs View 表单中填写用户详细信息时,我收到此响应。
我在尝试注册用户时收到此消息
{
"status": 200,
"message": "Account created successfully.",
"data": {
"name": "name of user",
"email": "user email",
"password": "$2b$10$0IPgBNCJhjjkasdkGb2y0CviOuxRe/bAfhFqFDqrofMaCz5f0SMtwkgBxIzm"
}
}
我在尝试登录注册用户时收到此消息
{
"status": 200,
"message": "Account logged in successfully.",
"data": [
{
"id": 9,
"name": "username",
"email": "useremail@gmail.com",
"password": "$2b$10$v3/zhn0pP6BMaTlfcoaMUuMlaHPGht6v2sf03e6uB3OPIQ3ggdpdi",
"date_created": "2020-02-21T13:15:33.000Z"
}
]
}
当我发布包含已注册用户详细信息的登录表单时,我得到了此消息
{
"status": 400,
"message": "Provided email address already exists, try another",
"data": null
}
当我尝试使用错误的凭据登录时,我收到此消息
{
"status": 400,
"message": "Incorrect password provided, try again.",
"data": null
}
请问我的问题是如何访问这些详细信息,以便我可以在我的 ejs View 中将它们发送给客户
最佳答案
您可以使用 npm 包请求,因此您可以使用此安装它 我请求 npm 现在您将需要一个函数,每当您想要使用 api 端点时都将调用该函数
var request = require("request");
module.exports = {
// DATA IN { name: 'aaa', email: 'pass@gmail.com', password: '123' } FORMAT
callAPI:function(url, data, callback){
var options = { method: 'POST',
url: url,
headers:
{
'cache-control': 'no-cache',
'content-type': 'application/json'
},
body: data,
json: true };
request(options, function (error, response, result) {
if (error){
return callback(error);
}else{
callback(null, result);
};
});
}
}
您可以以此为例来调用该函数
app.post('/signup', function (req, res) {
var data = {
"name": req.body.name,
"email": req.body.email,
"password": req.body.password
}
functions.callAPI("https://api/endpoin/signup", data, function (error, result) {
if (error) {
var response = {
"status": 400,
"message": error,
"data": null
}
res.render('signup', {response: response});
} else {
var response = result;
if (response.status === 400) {
res.render('signup', {response: response});
} else {
res.redirect('/login');
}
}
});
});
关于javascript - 使用 Node 和 ejs 时调用外部 api 端点并获取用户的详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60340027/