node.js - nodejs在两个不同的中间件中传递相同的变量
问题描述
在我的应用程序文件中,我有两个 post middlwares
app.post('/check',urlencodedParser,function (req, res) {
var date_entre_user=req.body.dateentry;
var date_sortie_user=req.body.datesortie;
var idroom=req.body.room;
let sql=`SELECT * FROM reservation WHERE idchambre = ${req.body.room}`;
let query=db.query(sql,(err,result)=>{
datesortieuser=dateFormat(date_sortie_user,"isoDaTteTime");
dateentreuser= dateFormat(date_entre_user,"isoDateime");
app.post('/submit',urlencodedParser,function (req, res) {
.numtele,
email: req.body.email
}
/* let clt = {
nom: req.body.nom,
prenom : req.body.prenom,
cin: req.body.cin,
ville: req.body.ville,
pays: req.body.pays,
tele: req.body
let sql2 = 'INSERT INTO client SET ?'
db.query(sql2, clt,function (err, result) {
if (err) throw err;
console.log("1 client inserted");
});
let sql3 =`SELECT idclient FROM client WHERE nom = ${req.body.nom}`;
db.query(sql3,function (err, result) {
if (err) throw err;
console.log(result);
});
但是当我在第二个中间件帖子中使用变量 date_entre_user 时,我得到变量 undefined 我该怎么做?
解决方案
您提到的变量仅在您的第一个.post()
方法中定义,因此它不在第二个方法的范围内。
如果你想将数据从一个中间件函数传递到另一个,一个好方法是使用req.locals
,用你传递的数据装饰 req 对象。像这样的东西。
/* in one function */
if (!req.locals) req.locals = {}
req.locals.date_entre_user = quelqueChose
然后在下一个函数中,您可以引用同一项目。
推荐阅读
- amazon-dynamodb - dynamodb 中增加了一个新数据,在 tableau 上的显示会相应改变
- java - 接收带有和不带有主体的 Spring ResponseEntity
- sql - 根据地图列中的键选择数据
- javascript - 如何在 Angular 中取消选中 mat-checkbox 时重置输入文件上传的值?
- react-native - 重置()后,Lottie 动画在 Android 上不再播放
- stl - 使用更新的 MeshLab 软件进行表面重建
- bash - 如何让 zsh 或 bash 中的多个进程同时附加到同一个文件?
- javascript - NodeJs / Axios:与高并发性相关的超时问题
- html - 居中的弹性项目溢出不可读
- html - 正确设置引导间距的问题