Node.js 如何在Express中编写一个函数,在作为API调用时可以返回JSON,但在没有Axios/Fetch的情况下也可以在内部调用?
甚至不确定描述它的最佳方式,但基本上我在Express控制器中有一个函数,位于/api/lookupJobName,它接受查询参数Q,这是一个数字,然后做一些后台工作(连接到Salesforce,查找作业号,获取其实际名称),并返回一个json对象,如下所示:Node.js 如何在Express中编写一个函数,在作为API调用时可以返回JSON,但在没有Axios/Fetch的情况下也可以在内部调用?,node.js,express,Node.js,Express,甚至不确定描述它的最佳方式,但基本上我在Express控制器中有一个函数,位于/api/lookupJobName,它接受查询参数Q,这是一个数字,然后做一些后台工作(连接到Salesforce,查找作业号,获取其实际名称),并返回一个json对象,如下所示: oppName = { name: "whateverCameBack" } res.json(oppName) 非常简单,我这样创建它是因为当一些客户端JS在表单中输入数字时,会调用它 现在,我在项目中走得更远了,我需要再次快速地从作
oppName = { name: "whateverCameBack" }
res.json(oppName)
非常简单,我这样创建它是因为当一些客户端JS在表单中输入数字时,会调用它
现在,我在项目中走得更远了,我需要再次快速地从作业编号中获取作业名称,但这都是服务器端的。我认为重新编写本质上相同的代码,或者使用Axios根据我自己的API调用函数(这是额外的流量,get需要代理有点混乱),没有意义,但我不能直接调用模块,因为它会抛出错误,因为我使用res.json发回数据
我可以重复使用API中的代码吗?或者我需要为我的特定目的编写一份代码副本吗?您可以编写一个模块,将核心功能导出为一个简单的函数。此模块又可以由
因此,您的api和cli只是围绕实际功能的薄层,不应该了解任何有关cli或express的信息。如果我理解正确,那么您可以使用模块!这是假设您的第二次使用在同一台服务器上。如果不是,那么你需要做些别的事情
//fn.js
module.exports=函数doStuff(作业ID){
const whateverCameBack=剂量测量(jobId);
返回{name:whateverCameBack}
}
//app.js
var doStuff=要求('./fn');
app.get('api/jobs/:id',函数(req、res、next){
doStuff(要求参数id)
.then(x=>res.json(x))//假设它是异步的
.然后(下一步);
});
//服务器中的其他位置
var doStuff=需要('./fn');
doStuff(jobId).then(oppName=>//随便什么)代码>谢谢!感谢代码示例-我想这正是我需要的,干杯!