在Node JS服务器上运行UI5

时间:2014-12-01 23:50:27

标签: node.js sapui5

我试图在Node.js服务器上运行我的ui5页面。到目前为止,我已经创建了一个UI5项目,其中包含一个简单的index.html文件,调用我的其他ui5视图显示文本消息。当我在没有节点js的情况下运行它时它运行正常并向我显示消息。

我现在想要实现的是在我的节点服务器上运行它。所以我为我的节点配置了一个server.js文件,它启动正常。在那里,我调用了我的上述index.html文件。它调用它很好,但它内部给出一个错误,说sap未定义意味着它无法找到我的ui5资源,如sap-ui-core.js,从而错误。我不确定为什么它找不到它。

我使用eclipse创建了ui5项目,它为我提供了以下目录下的ui5资源,但即使我尝试将资源目录放在web内容目录下,也无法找到它。

enter image description here

手动放入资源目录后:

enter image description here

以下是我的index.html的样子:

enter image description here

它是否与我定义的资源根有关,或者如果您可以建议我如何使其工作。

急切等待你的回复。

谢谢, AW

添加到cschuff响应:

您好,感谢您花时间帮助我。是的,我的应用程序命名空间是不同的,绝对不是sap.ui的东西。虽然我已经找到了解决这个问题的方法,但我仍然希望能够让它发挥作用,因为它更清洁。我现在使用它的方式是完全创建一个单独的节点项目,然后逐渐添加我的UI5片段,并且通过众神恩典它现在运行正常。但是我不确定为什么同样的概念,如果我申请在eclipse中创建的UI5项目,它给我的sap是未定义的错误。

enter image description here

2 个答案:

答案 0 :(得分:0)

我唯一的建议是你错误配置了node.js服务器。尝试从头开始:

mkdir app
cd app
npm install -g express-generator
express -f
npm install
node .\bin\www

将项目的所有文件和resource放在public目录中。并尝试打开http://localhost:3000/index.html

答案 1 :(得分:0)

/ resources由com.sap.ui5.resource.ResourceServlet提供(请参阅您的web.xml; web.xml和Servlet在Java World中使用,例如Java应用程序服务器或Servlet容器,如Tomcat)

ResourceServlet侦听url-pattern / resources / *意味着每次将请求发送到匹配此模式的url时,ResourceServlet(Java类)将介入,查找正确的.jar文件并返回所需的来自它的JavaScript文件。这不适用于像Apache这样的普通网络服务器。

我不太了解express,但我想它无法运行Java Servlets,因此无法以与Tomcat相同的方式提供SAPUI5资源。

要解决此问题,您仍有一些选择:

  1. 使用Express为您的应用程序源提供服务,并在开发时从Tomcat加载UI5。这可能会导致跨源问题(因为localhost:8080和localhost:3000被认为是不同的来源)

    < script src =" http:// locahost:8080 / resources / sap-ui-core.js" ...

  2. 解压缩所需的所有UI5 .jars并将它们放在YourApplication / resources /中。

  3. enter image description here

    BR 克里斯