如何使用节点 js 控制台拒绝邮递员中的解析消息
Posted
技术标签:
【中文标题】如何使用节点 js 控制台拒绝邮递员中的解析消息【英文标题】:How to console reject resolve message in postman using node js 【发布时间】:2021-07-15 06:52:19 【问题描述】:如何在多个函数中执行解析。
因为我有多个 promise 函数,每个函数都包含解析消息,但不知道如何在邮递员上打印它
如果有一个带有promise的函数,那么解析消息很容易被执行,但是如果有函数的函数那怎么可能呢?
这是否可以将解决或拒绝消息从一个函数返回到另一个函数?
我写信是为了在我的任务完成时在邮递员中传递解决消息,或者在出现错误时拒绝消息
但是在写完return
之后,它仍然没有返回解决消息或邮递员内部的拒绝消息
知道如何解决这个问题吗?
async function readFile(filePath)
async function getAllFile(filePath)
const paths = await readFile(filePath);
async function filterFiles(filePath)
const paths = await getAllFile(filePath);
function addDocument(data)
return new Promise((resolve, reject) =>
Document.create(
name: data.name,
,
).then(function (filePath)
filterFiles(filePath);
let msg = "Document created Succesfully";
return resolve(msg);
)
.catch(function (err)
return reject("Can't be updated please try again :) " + err);
);
);
function updateDoc(data)
return new Promise((resolve, reject) =>
Document.update(
name: data.name,
where:
product_id: data,
,
)
).then(function (filePath)
getAllFile(filePath);
let msg = "Updated Successfully";
return resolve(msg);
)
.catch(function (err)
return reject("Can't be updated please try again :) " + err);
);
function findDoc(data)
return new Promise((resolve, reject) =>
Document.findAll(
raw:true,
,
name: data.name,
where:
product_id: data,
,
)
).then(function (product)
if(product.length===0)
addDocument(product);
let msg="task completed";
return resolve(msg,product);
else
return resolve(updateDoc(product));
)
.catch(function (err)
return reject("Can't be updated please try again :) " + err);
);
function findDoc(data)
return new Promise((resolve, reject) =>
Document.findAll(
where:
product_id: data.id,
,
)
).then(function (product)
findDoc(product);
let msg="task completed";
return resolve(msg,product);
)
.catch(function (err)
return reject("Can't be updated please try again :) " + err);
);
如何在邮递员中获得解决消息
【问题讨论】:
您可以在以下帖子中找到答案。这是与那些类似的问题。 ***.com/questions/67156313/…***.com/questions/67192232/… 【参考方案1】:我很难测试您的代码,但很有可能在响应对象中返回解析、拒绝消息。
例如,如果您想通过 3 个 promise 传递拒绝消息并返回您需要使用 try, catch
块的响应,您可以查看以下示例:
// index.js
const express = require('express')
const app = express()
const port = 3000
const responder1 = (error, message) =>
return new Promise((resolve, reject) =>
if (error)
reject(error);
return;
resolve(message);
);
;
const responder2 = (error, message) =>
return new Promise((resolve, reject) =>
if (error)
reject(error);
return;
resolve(message);
);
;
const responder3 = (error, message) =>
return new Promise((resolve, reject) =>
if (error)
reject(error);
return;
resolve(message);
);
;
app.use('/', async (req, res) =>
let result;
try
const error = new Error("This is a error message.");
result = await responder1(error, null);
catch (error1)
try
await responder2(error1, null);
catch (error2)
try
await responder3(error2, null)
catch (error3)
res.send(
success: 0,
message: error3.message
);
return;
res.send(
success: 0,
message: result
);
);
app.listen(port, () =>
console.log(`Example app listening at http://localhost:$port`)
)
如果你想传递解析消息:
const express = require('express')
const app = express()
const port = 3000
const responder1 = (error, message) =>
return new Promise((resolve, reject) =>
if (error)
reject(error);
return;
resolve(message);
);
;
const responder2 = (error, message) =>
return new Promise((resolve, reject) =>
if (error)
reject(error);
return;
resolve(message);
);
;
const responder3 = (error, message) =>
return new Promise((resolve, reject) =>
if (error)
reject(error);
return;
resolve(message);
);
;
app.use('/', async (req, res) =>
let result = await responder3(null, await responder2(null, await responder1(null, "This is a test message.")));
res.send(
success: 0,
message: result
);
);
app.listen(port, () =>
console.log(`Example app listening at http://localhost:$port`)
)
【讨论】:
以上是关于如何使用节点 js 控制台拒绝邮递员中的解析消息的主要内容,如果未能解决你的问题,请参考以下文章
Angular js1中的403禁止Rest API(节点js)
是否最好使用HTTP标头重定向到不同的页面/文档,或者合并动态消息以通知用户拒绝访问?