我正在尝试在 restify json 响应上应用JSON掩码(与周五13日的游戏或电影无关)。
通常的方法是在所有服务器路由中调用next(),然后 在restify的“ pre”处理程序中实现掩码
我现在不能做,我要快速修复,因此我尝试用猴子修补我的refify响应,如下所示:
创建一个模块“ CustomResponse”:
function CustomResponse (originalResponse) {
this.restifyResponse = originalResponse
this.type = 'customResponse'
}
CustomResponse.prototype.send = function (code, payload) {
if (!payload) { payload = code }
console.log(payload)
this.restifyResponse.send(code, payload)
}
module.exports = CustomResponse
我正在尝试在中间件中使用此模块,但是它不起作用:
var CustomResponse = require('./customResponse') // the file above
server.use(function (req, response, next) {
response = new customResponse(response)
next()
})
仅当我在路线中使用它时才有效:
var CustomResponse = require('./customResponse') // the file above
server.get({
path: '/foo/bar'
}, function(request, response, next){
response = new CustomResponse(response)
response.send('baz') // this will print on the console the response and send it to the browser
})
感谢任何提示!
答案 0 :(得分:0)
这是您的中间件吗?
var CustomResponse = require('./customResponse') // the file above
server.use(function (req, response, next) {
response = new Response(response)
next()
})
对于此代码:
response = new Response(response)
我认为您应该像下面的代码一样使用它
response = new CustomResponse(response)
因为您使用的变量是CustomResponse
,而不是Response
。
希望对您有帮助。