首先这是关于stackOverFlow的第一个问题,所以请原谅我,如果我能更好地和更好地问我的问题。
我正在写一个restfullAPI项目,我想用客户端应用程序(android,ios等)做以下事情: 在我的代码中,那些想要使用我的api的应用程序首先应该要求一张票,然后服务器会给他们一张票。然后,应用程序和客户端都发送一个http请求,客户端将通过访问一个带有ticketId作为查询参数的特定URL来通过他/她的浏览器发送请求,并将询问他/她是否想让应用程序访问他/她她的帐户,应用程序将只发送一个http请求,并等待客户端允许访问和应用程序得到通知。
sooo ...基本上我想保存应用程序请求的res对象,然后在客户端的中间件流中响应它。 :)
但是当我尝试通过mongoose将res对象保存到mongo时,我收到此错误:
RangeError:超出最大调用堆栈大小
这是我的相关代码:
这是我的路由器(第一个用于应用程序的请求,第二个用于客户端的请求(我只是通过在客户端的请求主体中向客户端的http请求发送一个消息来简化一点))
router.post('/test', function (req, res, next) {
var t = new testRes({res:res});
t.save(function (err, res) {
console.log('1 -- E :: ',err);
console.log('1 -- ::',res);
})
});
router.post('/test2',function (req, res, next) {
testRes.findById(req.body.id,function (err, res) {
console.log('2 -- E :: ',err);
res.json(req.body.msg);
})
});
这是我的猫鼬模型:
var mongoose = require('mongoose');
var schema = mongoose.Schema;
var testSchema = schema({
res : {type :schema.Types.Mixed}
});
module.exports = mongoose.model('testres',testSchema);
如果你认为我可以设计我的项目的另一种方式,我会感激你,如果你说,我甚至考虑让我的应用程序每分钟发送它的请求或有一个底部这样做但这些解决方案不是像这个解决方案一样优雅
<顺便说一下:将所有res对象的信息保存到jest res.send是否有必要?答案 0 :(得分:0)
从未尝试将完整的res对象保存在节点应用程序中。可能是问题,res似乎太长了,无法以这种方式保存。
如果您需要一个票务系统来验证某些用户,最好的方法是使用passportjs。这将完美适用于您的API。这是一个例子(应该工作,但没试过) https://www.djamware.com/post/58bd823080aca7585c808ebf/nodejs-expressjs-mongoosejs-and-passportjs-authentication