我刚开始尝试使用Aptana Jaxer服务器端JavaScript引擎进行下一个项目。我对此几乎没有任何疑问
我知道这太长了(和天真的问题)。我只是希望有人在实现服务器端JS的时候已经遇到了所有这些。
根据马修和肯的评论,我已经增加了一些清晰的问题是否真的是一个更好的方法?
这是我打算问的。
它真的比使用服务器端语言(假设c#)更好的方法,我们如何可以将它与网站的c#实现(性能,语言功能)进行比较?哪一个是更好的方法,在服务器端单独使用JS还是在其他语言堆栈和Web服务器之间的中间层使用JS?
发布于 2018-03-08 14:03:43
我是Myna(www.mynajs.org)的开发人员,这是一个基于Rhino和Java的开源服务器端JS平台。我将解决与Myna有关的问题,但这些问题中的很多都适用于服务器端JS:
通过使用服务器端JS,我们可以在不使用任何服务器端语言(如C#,Java等)的情况下实现整个Web应用程序。或者服务器端JS位于Web服务器和其他语言堆栈之间。
在Myna中,可以用JS编写你的整个应用程序。Myna已经包含了API的数据库访问,对象关系映射,crytogrophy,OpenID等。
它真的比c#/ Java更好吗?
使用基于Rhino的服务器,只要需要,就可以下载到Java。您可以轻松安装开源/商业/手动编码的Java库,然后从JS中编写脚本。这意味着您可以快速开发JS,但可以保持Java平台的优势
有什么优点和缺点?
优点:
var manager =new Myna.DataManager("DataSource name").getManager("table name");
您会得到一个可以执行所有基本CRUD操作而无需明确定义数据库表的对象。作为另一个例子,你可以插入一个表格中包含所有匹配值的行:
manager.create($req.data);
缺点:
这在性能方面如何运作良好?
以原始计算速度,很少有动态语言可以匹配静态类型的编译语言,如C#和Java。说了这么多,真的没关系。应用程序的计算密集型应用程序的任何部分都应该用Java编写,或者使用现有的Java库。例如,我不会建议任何人在JS中编写数据库。对于真实世界的Web应用程序/ SOA服务,速度下降的主要原因不是原始的计算速度,而是代码效率低下,尤其是数据库访问。Myna通过以下方式为此提供帮助:
我们可以如何实施和维护数据库交易?我们可以在服务器JS中做到这一点..?
如果您的意思是“一组可以反转或提交的SQL语句”,那么Myna尚不支持事务。如果有足够的兴趣,我愿意实施。
如果你的意思是“服务器端JS有什么样的数据库支持?” 那么答案依赖于平台。Myna平台提供了以下数据库功能:
是否有可能在serverside JS中开发RESTFul和SOAP服务.. ??
REST和SOAP支持是平台特定的功能。Myna的WebService对象支持以下协议:
Myna还了解PUT和DELETE请求方法,并以文本和二进制形式显示请求主体内容的访问权限,以便可以以特定于应用程序的方式处理这些RESTful方法。
调试
传统的断点调试是服务器端真正的挑战。虽然Rhino支持调试器钩子,但是使用无状态Web应用程序中的这些钩子会非常麻烦。就个人而言,我甚至不使用断点调试器,即使它们可用(例如萤火虫)。相反,我更喜欢日志。
在Myna,
Myna.log(type,label,detail)
会产生一个低优先级的线程来写一个HTML日志消息给Myna的日志记录数据库。这些日志可以通过Myna Administrator进行搜索。日志还会记录时间戳和毫秒数据以进行性能分析。Myna.dump(obj)也可以用来呈现任何对象的HTML表格表示。Myna还记录了堆栈跟踪,源代码上下文和请求细节的所有未处理异常。在dump(),log()和默认错误处理程序之间,我没有太多的难度来调试Myna代码
发布于 2018-03-08 15:14:18
通过使用服务器端JS,我们可以在不使用任何服务器端语言(如C#,Java等)的情况下实现整个Web应用程序。
尽管许多服务器端JavaScript框架使用Rhino引擎,它允许您调用任何Java代码,但不应该有必要用任何其他语言编写代码。
这真的是一个更好的方法吗?
我不认为JavaScript(作为一种语言)比传统的服务器端语言更好或更差。它具有灵活性,快速原型设计(无双关语意图),灵活性等优点(以及其他动态语言,如Ruby和Python),另一方面,它没有Java和C#拥有的库支持或静态类型(我不会进入关于哪个更好的辩论;我因为不同的原因喜欢这两个)。
如果您想要两者中最好的一种,您可以将JavaScript用作脚本语言,嵌入您的应用程序中。Rhino for Java和JScript.NET可以轻松操纵JavaScript中的“本地”对象。例如,您可以使用Java或C#编写您的域类,并在需要更多灵活性的情况下使用JavaScript编写脚本。如果你足够满意JavaScript,用单一语言写作可能会更简单。
我从来没有写过使用JavaScript的“真正的”服务器端应用程序,所以我不能判断它是比.NET更好还是更差(我从来没有用过JScript.NET)。尽管我已经玩过几个框架,但我正在使用Helma NG重写我的个人网站。到目前为止,这是一个很好的体验(比PHP更好,我从来不喜欢它)。
什么是优点和缺点?
Advantanges:
缺点:
这在性能方面如何运作良好?
性能应该与其他脚本语言大致相当。
有没有实时的实现(公共网站)只使用服务器端JS(没有其他语言)?
我不知道使用JavaScript的任何大型网站,但可能会有一些。
Aptana jaxer(开源)提供哪些替代方案?
维基百科有大量的选项,但它没有太多有用的信息。有很多种成熟度和大小的选择。
这里有一些我熟悉的(不同程度)
我们可以如何实施和维护数据库交易?我们可以在服务器JS中做到这一点..?
基于Rhino的框架可让您使用Java类,因此您拥有完整的JDBC支持。我没有使用Jaxer的数据库库,所以我对它的功能一无所知。
是否有可能在serverside JS中开发RESTFul和SOAP服务.. ??
RESTful API不应该有任何问题。我不知道对SOAP的任何具体支持,但它应该是可能的。
https://stackoverflow.com/questions/-100003181
复制相似问题