澄清。 这里的问题是,"我如何停止使用
<cfquery>
来检索数据并将其替换为对API的调用?"
我有一个sql查询,我需要帮助将它转换为cfscript。然而,正如你所看到的,我已经尝试过转换它。但是,我需要一些验证,如果我是在正确的路径上转换从sql查询到cfscript.如果不是,任何人都可以帮助我通过转换从sql查询到cfscript? 谢谢帮助。 这是我的代码。
CFSCRIPT。
<cfset jsonDatas = fileRead("c:\Users\Desktop\MyApi.json" )>
<cfset jsonData = deserializeJSON(jsonDatas) />
<cfif arrayLen(jsonData)>
<cfloop array="#jsonData#" index="prop">
<cfoutput>
<cfscript>
// writedump(jsonData);for (item in jsonData[1]) {
if (#prop.payGrade# == 0) {
#prop.divisionNbr#;
#prop.probationBeginDate#;
#prop.legacyStatus#;
#prop.payStep#;
#prop.creationDate#;
}
我打算在这里打破。你是否在一个DB中有数据,你只是想返回它的JSON表示?就像
<cfquery name="result">
SELECT ...
FROM whereever
</cfquery>
<cfoutput>#SerializeJSON(result, 'struct')#</cfoutput>
然后其他的东西试图消耗这些数据?我一直在看和你的问题,我不知道我们是在生成数据的一方,还是在消费数据的一方。
你问的是两件不同的事情。
SQL
定义了在数据库上运行的查询。CFSCRIPT
是ColdFusion代码的一种脚本式语法(与标签相对)。你的示例代码是
你是想从当前调用数据库,将数据以ColdFusion查询对象的形式返回到调用API,将数据以JSON包的形式返回?然后你需要将JSON数据转换为你目前使用的相同或类似的CF结构?
更新。 如果你想把现有的查询替换成API调用。
<cfquery>
调用到API调用?这其实是一个评论,但我需要很多空间来写。
你是否想从远程源获取数据,并将其显示在网页上。你是想做这样的事情吗?
我觉得我们需要明确哪些是客户端技术,哪些是服务器端技术。
更新 根据评论**
考虑一个VueJS解决方案
<!-- Showing stuff on screen -->
<div id="app">
{{ info }}
</div>
我可以在屏幕上显示东西。这类似于,但不完全相同于 #info#
<!-- Getting data -->
<cfscript>
new Vue({
el: '#app',
data () {
return {
info: null
}
},
mounted () {
axios
.get('https://api.coindesk.com/v1/bpi/currentprice.json')
.then(response => (this.info = response))
}
})
<cfscript>
而这是从一个远程源获取数据,并将这些数据放入一个javascript变量中。
解释
那么为什么我用Javascript而不是ColdFusion来做这件事呢?Javascript运行在浏览器上;ColdFusion运行在服务器上。如果你想在浏览器上消费一个API,你必须使用基于浏览器的技术。
我的例子是用VueJS,但Angular和React也是可以选择的。虽然有点过时,但jQuery也可以做这种事情。
代码来源。https:/vuejs.orgv2cookbookusing-axios-to-consume-apis.html。