在coldfusion中正确地查询到cfscript?

问题描述 投票:0回答:3

澄清。 这里的问题是,"我如何停止使用 <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#;           
          } 
sql coldfusion cfml
3个回答
0
投票

我打算在这里打破。你是否在一个DB中有数据,你只是想返回它的JSON表示?就像

<cfquery name="result">
    SELECT ...
    FROM whereever
</cfquery>

<cfoutput>#SerializeJSON(result, 'struct')#</cfoutput>

然后其他的东西试图消耗这些数据?我一直在看和你的问题,我不知道我们是在生成数据的一方,还是在消费数据的一方。


0
投票

你问的是两件不同的事情。

  • SQL 定义了在数据库上运行的查询。
  • CFSCRIPT 是ColdFusion代码的一种脚本式语法(与标签相对)。

你的示例代码是

  • 下面是一些SQL
  • 我在这里读取JSON,并使用脚本风格的代码而不是标签将其转换为ColdFusion结构。

你是想从当前调用数据库,将数据以ColdFusion查询对象的形式返回到调用API,将数据以JSON包的形式返回?然后你需要将JSON数据转换为你目前使用的相同或类似的CF结构?

更新。 如果你想把现有的查询替换成API调用。

  • 该API是否已经存在?
  • 它是否与当前查询返回的数据相同?
  • 你的团队是否正在转向API来解耦现有代码?
  • 你是否需要知道如何转换一个 <cfquery> 调用到API调用?

0
投票

这其实是一个评论,但我需要很多空间来写。

你是否想从远程源获取数据,并将其显示在网页上。你是想做这样的事情吗?

enter image description here

我觉得我们需要明确哪些是客户端技术,哪些是服务器端技术。

更新 根据评论**

考虑一个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。

© www.soinside.com 2019 - 2024. All rights reserved.