邮递员显示 204 No Content 而不是 Response body
Postman showing 204 No Content instead of Response body
在我的 nodejs
应用程序中,我有一个 get API 获取一些数据,对其进行一些计算,将数据插入数据库并将 return 的计算值返回到用户。我正在测试来自 postman
的 API,它工作得很好,即数据已成功插入数据库。但它没有 return responseBody
,而是我在邮递员中收到 204 no Content
。
这是我的最终回复
{"headers":{"authorization":"Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9","user-agent":"PostmanRuntime/7.26.8","accept":"*/*","postman-token":"cf8ae1e4-e5db-46d5-bc86-0bf22c0a2cd3","host":"localhost:9988","accept-encoding":"gzip, deflate, br","connection":"keep-alive","method":"GET","client":"PostmanRuntime/7.26.8","responseTime":"803.764ms"},"url":"/app/calculateData/bfa8f77a13a?currentdata=-5&frequency=10","requestBody":{},"responseBody":{"result":"5"}}
我不知道我在这里错过了什么。这是我的 API 调用结构..
路由器文件:
app.get('/app/calculateData/:userId', (req, res, next) => { return controllers.appController.calculateData(req, res, next);});
控制器:
calculateData(req, res, next) {
res.responseGenerator = {};
res.responseGenerator.responseCode = 204;
let params = Object.assign({}, req.params, req.query )
this.appService.calculateData(params, (err, myResult) => {
res.responseGenerator.result = myResult;
if (err) return next(err);
return next();
});
}
服务:
calculateData(params, callback) {
let self = this;
let dbContext = self.mysqlResource.getContext();
let appSqlDao = new appSqlDao(dbContext)
return appSqlDao.calculateData( params, (err, res) => {
dbContext.release()
if (err){
return callback(err)
}
let objResult = {}
objResult.result = res.result.toString()
return callback( null, objResult )
})
}
这里是 DAO 文件:
calculateData(filters, callback) {
let targetHcp = null
let varcharUserId = this.dbContext.escape(filters.userId)
let query = `CALL db.calculateData(${varcharUserId})`
return this.dbContext.runQuery(query, (err, res) => {
if (err) {
err.status = 111;
err.code = 11111;
err.message = 'Internal database error';
}
if (res.length) {
calValue = res[0][0]
}
return callback(err, calValue)
})
}
I don't know what I am missing here. Any kind of help will be
appreciated.
res.responseGenerator.responseCode = 204 -- 这是你的罪魁祸首。
在我的 nodejs
应用程序中,我有一个 get API 获取一些数据,对其进行一些计算,将数据插入数据库并将 return 的计算值返回到用户。我正在测试来自 postman
的 API,它工作得很好,即数据已成功插入数据库。但它没有 return responseBody
,而是我在邮递员中收到 204 no Content
。
这是我的最终回复
{"headers":{"authorization":"Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9","user-agent":"PostmanRuntime/7.26.8","accept":"*/*","postman-token":"cf8ae1e4-e5db-46d5-bc86-0bf22c0a2cd3","host":"localhost:9988","accept-encoding":"gzip, deflate, br","connection":"keep-alive","method":"GET","client":"PostmanRuntime/7.26.8","responseTime":"803.764ms"},"url":"/app/calculateData/bfa8f77a13a?currentdata=-5&frequency=10","requestBody":{},"responseBody":{"result":"5"}}
我不知道我在这里错过了什么。这是我的 API 调用结构..
路由器文件:
app.get('/app/calculateData/:userId', (req, res, next) => { return controllers.appController.calculateData(req, res, next);});
控制器:
calculateData(req, res, next) {
res.responseGenerator = {};
res.responseGenerator.responseCode = 204;
let params = Object.assign({}, req.params, req.query )
this.appService.calculateData(params, (err, myResult) => {
res.responseGenerator.result = myResult;
if (err) return next(err);
return next();
});
}
服务:
calculateData(params, callback) {
let self = this;
let dbContext = self.mysqlResource.getContext();
let appSqlDao = new appSqlDao(dbContext)
return appSqlDao.calculateData( params, (err, res) => {
dbContext.release()
if (err){
return callback(err)
}
let objResult = {}
objResult.result = res.result.toString()
return callback( null, objResult )
})
}
这里是 DAO 文件:
calculateData(filters, callback) {
let targetHcp = null
let varcharUserId = this.dbContext.escape(filters.userId)
let query = `CALL db.calculateData(${varcharUserId})`
return this.dbContext.runQuery(query, (err, res) => {
if (err) {
err.status = 111;
err.code = 11111;
err.message = 'Internal database error';
}
if (res.length) {
calValue = res[0][0]
}
return callback(err, calValue)
})
}
I don't know what I am missing here. Any kind of help will be appreciated.
res.responseGenerator.responseCode = 204 -- 这是你的罪魁祸首。