javascript - Node.js Express 在 app.post() 内执行
问题描述
我现在有一个问题,我自己无法解决。我想你在这里知道更多。我才刚刚开始。
通过使用以下代码,我得到了一个客户列表:
app.get("/customers", customers.findAll);
我想添加身份验证。但现在我不知道如何执行“customers.findAll”并将值作为 JSON 获取。
app.get("/customers", verifyToken, (req, res) => {
jwt.verify(req.token, 'justAtest, (err, authData) => {
if (err) {
res.sendStatus(403);
} else {
// execute customers.findAll
}
});
});
客户通过需求集成
const customers = require("../controllers/customer.controller.js");
内容如下:
exports.findAll = (req, res) => {
Customer.getAll((err, data) => {
if (err)
res.status(500).send({
message:
err.message || "Some error occurred while retrieving customers."
});
else res.send(data);
});
};
你有什么想法?
先感谢您。
问候
韩国
解决方案
您可以使用称为“中间件”的东西来实现这一目标。探索它,因为它非常重要。
基本上 :
app.get("/customers", verifyToken,customers.findAll);
其中验证令牌是一个具有 3 个参数的函数:req、res 和第三个称为“next”的参数。所以你的验证令牌函数看起来像:
(req, res,next) => {
jwt.verify(req.token, 'justAtest, (err, authData) => {
if (err) {
res.sendStatus(403);
} else {
next();
}
});
}
我是从你的片段中提取的。基本上,如果你想跳转到customeeers.finalAll,只需调用“next”,它就会跳转到下一个函数:D。
推荐阅读
- coldfusion - ColdFusion cfswitch
- php - 为什么 aws s3 cp 命令不通过 ip 网络传输文件,但它仅在本地目录中有效?
- algorithm - 将 3 * K 数组划分为 K 个相等子数组算法
- javascript - 用 Jest 模拟点击
- flutter - 底部导航栏颤动详情页
- python - 在 python3 中是否有其他验证命令行参数的方法?
- python-3.x - 熊猫数据框,重组
- debugging - 在本地调试 Firebase 函数 (node.js)
- java - 使用 PDFBox 后的编码问题
- javascript - React - 无状态组件,组件内部或外部函数