Ember 第一个应用程序无法识别 xml2json 中的 xmlcode

Ember first application wont recognize xmlcode inside xml2json

抱歉,如果这个问题可能是因为我在 node/npm 领域缺乏知识。

我创建了我的第一个 ember 网络应用程序

我用 npn 和 bower 安装了 xml2json 并添加了

app.import('node_module/xml2json/xml2json.js') 

在 ember_build_cli.js 之前 return app.toTree();

我通过生成器添加了自定义路由,并添加了一个应该读取 xml 的函数,将其转换为 json 并输出数据

/myapp/app/routes/getxml.js

import Ember from 'ember';
export default Ember.Route.extend({
model() {
  return Ember.$.ajax({
   url: "data/test.xml",
    dataType:"xml"
  }).done(function(xmlData){
      var jsonData = xml2json.xml_to_object(xmlData);
      return jsonData;
 });
}
});

/myapp/app/data/test.xml

<ART>
<CD>
<ID>1</ID>
</CD>
<CD>
<ID>2</ID>
</CD>
</ART>

我有一个问题 xml2json 不工作。因为我能够在 Firefox 中安装 Ember Inspector,所以我最终遇到了这个错误:

TypeError: xmlcode.replace is not a function

据我了解 xml2json 已正确导入,但 Ember/Firefox 不理解 xml2[=68= 中的代码 xmlcode.replace ]图书馆。

我是不是在安装应用程序时遗漏了什么或者我做错了什么?

编辑:

从头开始创建应用程序后 并且仅通过 bower install 安装 xml2json 添加

app.import('bower_components/xml2json/xml2json.js')

在/myapp/ember-cli-build.js 当 运行 ember 服务器我看到

routes/getxml.js: line 9, col 22, 'xml2json' is not defined

但在 Firefox 开发控制台中我看到:

XML Parsing Error: syntax error Location: http://localhost:4200/getxml Line Number 1, Column 1:

仅此而已。 现在我不确定 xml2json 是否已加载(因为存在 XML 解析错误)或未加载 ember cli 状态未定义。

编辑 3:

/myapp/app/routes/getxml.js

    import Ember from 'ember';

    export default Ember.Route.extend({
    model() {
      return Ember.$.ajax({
       url: "http://127.0.0.1/GetXML.xml",
       dataType: 'xml'
  }).done(function(xmlData){
    var jsonData = xml2json.xml_to_object(JSON.stringify(xmlData));
    console.log('result', jsonData);
    return jsonData;
  }).fail(function(error){
    console.log('error ', error);
  });
}
});

在 Firefox 控制台内的控制台中将结果打印为未定义。

app.import('node_module/xml2json/xml2json.js')

app.import 仅适用于 vendorbower_components 文件。不适用于节点模块。

I install xml2json with npn and bower and added

为模块选择 NPM 或 Bower,但不能同时选择两者。

  • 如果您选择 Bower 安装,则 bower install xml2json 并包括 app.import('bower_components/xml2json/xml2json.js')

  • 如果你选择 npm 然后按照这个步骤, 需要安装 browserify,然后安装所需的 npm 模块。 npm install ember-browserify --save-dev 然后 npm install xml2json --save-dev。您需要将其导入文件中您想要访问的任何地方 import xml2json from 'npm:xml2json';

url: "http://127.0.0.1:8080/GetXML"

确保此端点返回 xml 响应。

xml2json.xml_to_object(xmlData);

我看到 toJsontoXml 用于转换而不是 xml_to_object