我正在使用Azure移动应用程序的节点应用程序。
我有一个Easy Table,其读取操作看起来像这样:
table.read(function (context) {
context.query.where({ _user_id: context.req.userId });
return context.execute();
});
现在我想在该函数运行之前添加一些中间件,这会将userId添加到req中,所以我认为我应该做这样的事情:
table.use((req,res,next) => {
req.userId = "1234";
next();
}, table.operation);
现在,在table.read
内,如果我console.log(context.req.userId)
出现正确,但由于某种原因,在添加.use
之后,context.query
变为未定义。当我离开table.use
时,context.query.where({ _user_id: "1234" })
效果很好。
我应该如何在Azure移动应用中正确地运行此中间件?为什么定义table.use
弄乱context.query
?
答案 0 :(得分:0)
尝试在应用程序级别添加中间件:
mobileApp.use((req, res, next) => {
req.userId = "1234";
next();
});
mobileApp.tables.import('./tables');
mobileApp.api.import('./api');