我正在尝试使用JavaScript从移动服务中的另一个API调用API,但出现此错误:
脚本'/api/*api_name*.js'中的错误。TypeError:对象函数(响应){[exports.post.httpRequest.get.mssql.query.success.mssql.query.success处的[外部代码](D:\ home \ site \ wwwroot \ App_Data \ config \ scripts \ api \ * api_name * .js:49:36)[外部代码]
API(我在其中调用另一个API函数):
var api_name = require('../api/*api_name*.js');
exports.post = function(request, response) {
api_name.post(request, function(response) {
console.log("test")
})
};
另外,使用iOS Azure SDK调用* api_name * .js也没有问题。
因此,我不知道如何从另一个调用一个JS API。
如果有人可以解释我,那就太好了。谢谢!
我假设您的自定义API名称不包含'*'字符,并且您已将自定义API的实际名称替换为'* api_name *'-您无法在装有require的模块名称中使用通配符。
虽然应该可以直接要求另一个API模块,但是建议您将公共代码重构为共享模块。将此放置在站点的/ shared文件夹中,并使用以下语法引用该模块:
var sharedModule = require('../shared/sharedModule');
如果您需要传递自定义成功或错误处理程序,则可以执行以下操作:
api / api1.js
var shared = require('../shared/sharedModule');
exports.get = function(request, response) {
shared(request, response, 'table1', function(results) {
if(results.length == 1)
response.send(200, results[0]);
}
});
};
api / api2.js
var shared = require('../shared/sharedModule');
exports.get = function(request, response) {
shared(request, response, 'table2', function(results) {
if(results.length == 5)
response.send(200, "Correct number of records");
else
response.send(400, "Incorrect number of records");
});
};
shared / sharedModule.js
module.exports = function (request, response, table, success) {
request.service.mssql.query("SELECT COUNT(*) FROM " + table, {
success: success,
error: function (error) {
response.send(500, error);
}
});
}
每次调用都使用相同的错误处理程序,您也可以每次传递一个自定义错误处理程序。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句