Articles of 单页面应用程序

用于生成PDF的React JS / Node JS / Java RESTful API

我有一个要求,能够生成和下载我们的应用程序(支持所有国际市场)的dynamicPDF,CSV文件。 我们使用React JS(部署在Node JS服务器上),后端数据由Java Restful API提供。 生成这些文件的最佳方法是什么(客户端与服务器端)。 React JS是否应该根据java REST API提供的数据生成文件(pdf,csv),或者Java Rest API是否应该公开资源来生成和提供基于客户需求的文件(Base 64string)。 有没有一种方法可以在这里利用Node JS? 我想考虑性能,CPU使用率,因为数量会很高。 我可以使用哪些开源库?

Krakenjs如何将除api调用之外的所有请求路由到index.html?

如何将所有请求路由到index.html,除了一些API调用和一些页面。 因为kraken路由的方式是基于控制器的目录,所以如果我这样做 // /controller/index.js app.get('*', function(){ res.sendFile(__dirname + '/public/index.html'); }); kraken会把我所有的请求路由到index.html,包括/ controller / api目录下的api调用。 所以我怎样才能让kraken把/ api这样的请求路由到/controller/api/index.js,其余的到/public/templates/index.html?

如何使用node.js比symfony更好地应对前端?

我用symfony和twig和jquery构build了我的应用程序(一个ERP)。 现在,我的应用程序几乎每次更改都是在redirect之后完成的,也就是说,如果用户想要编辑某些内容,他点击“编辑”,用表单redirect到一个新页面,validation表单,然后回到前一页改变。 这种外观和感觉是非常古老的,我希望我的应用程序能够符合像Trello这样的新SaaS标准(我能想到的最好的例子/ Slack也不错)。 我已经开始在我的symfony应用程序中使用React,在我的树枝文件中。 不过,我看到大多数反应用户正在使用node.js,并最终expression。 我不知道这些足以说明是否与改变有关。 假设我打算改变我的前端,我的后端特性将通过REST API变得可用,并且我希望Trello的外观和感觉得益于ReactJS的实现(不是Angular,所做的select):有什么好的论点将主张改变技术(这将与ReactJS很好地结合),以及哪种技术应该是? (如果你明白我的问题,但觉得我的问题可以改善,不要犹豫,build议编辑)

如何在我的SPA加载过程中validation和更新JWT id_token?

我对OAuth 2.0和OpenID Connect相当OAuth 2.0 ,而且我无法理解stream程的某些部分(或者我应该使用哪些最佳实践)… 对不起,冗长的职位:) 我的设置: OP (OpenID提供者),基本上是使用oauth2orize-openid和passport来authentication和授权用户的express服务器。 我们称之为http://authserver.com Single page application (react + webpack)需要根据我的OP对用户进行身份validation,我们称之为http://my-spa.com 由于它是一个SPA(静态的webpack服务),我不得不使用Implicit Flow 。 我的问题 一旦用户导航到http://my-spa.com ,应用程序被加载,然后检查localStorage是否存在id_token 。 id_token在localStorage没有id_token : 由于没有令牌,我redirect到http://authserver.com/dialog/authorize response_type=id_token scope=openid profile 一旦用户成功通过身份validation和授权, authserver使用URI片段中的id_tokenredirect到my-spa 我将id_token存储在localStorage ,用户可以开始使用该应用程序。 加载时在localStorage有一个id_token 用户closures浏览器并再次打开。 这是我不知所措的地方。 由于已经有一个令牌(来自以前的login),我需要检查它是否有效。 有什么最好的做法呢? 以下是我认为是正确的: redirect到http://authserver.com/dialog/authorize使用: prompt=none id_token_hint=CURRENT_TOKEN 一旦OP收到这个请求,它应该validationJWT签名,尝试自动批准用户,并重新引导一个新的JWT。 令牌get在一段时间后过期 假设一个login用户的JWT过期了,应该什么时候请求一个新的? 什么应该引发更新? 什么是/tokeninfo或/userinfo ? 据我了解,JWT存储了识别用户所需的全部数据。 不过,我见过的例子调用/tokeninfo或/userinfo 。 如果我已经有sub标识,这些端点只是为了validation标记(假设我只需要标识的标识)。 智威汤逊签名validation 除OP , […]

Angular2 POST Observable Request返回一个不可读的JSON对象

我使用一个Angular2的POST请求与Observable到Node API。 我不断收到一个奇怪的JSON对象作为响应。 来自Node API应用程序的响应 – 通过Chrome控制台: {"_isScalar":false,"source":{"_isScalar":false,"source": {"_isScalar":false,"source":{"_isScalar":false},"operator": {"delay":500,"scheduler":{"actions":[],"active":false}}},"operator": {}},"operator":{"caught":"[Circular]"}} Angular2代码: login2(): Observable<any> { this.url = 'http://localhost:3080/user/login'; this.obj.email = 'jhon.doe@foo.de'; this.obj.password = 'pass'; let formObj = this.form.getRawValue(); let serializedForm = JSON.stringify(formObj); let headers = new Headers({ 'Content-Type': 'application/json' }); let options = new RequestOptions({ headers: headers }); var obsRequest = this.http.post(this.url, this.obj, options) .map(res […]

为Node.js服务器+ SPA javascript框架设置自动化BDDtesting环境的简单方法?

这是我的项目的设置: 前端:Angular.js / Backbone.js SPA应用程序 后端:Node.js + NoSQL数据库作为后端 testing: 已经有Karma成立SPAtesting(模拟JSON响应) 已经为Node.js设置了Mocha,并为testing数据库设置和拆卸提供了一个独立的“testing”环境 现在,当我尝试设置集成BDDtesting(即启动节点服务器,启动浏览器并在浏览器内部运行SPAtesting,实际JSON调用到后端)时,问题就出现了。 经过一番search,我找不到一个简单明了的解决scheme,所以我想我会在这里问,所以处于类似情况的其他人也可以从中得到答案。 谢谢!

SPA应该使用Ajax还是socket.io?

浏览GitHub仓库,我经常看到使用Ajax而不是socket.io的SPA实现。 这令我感到惊讶,因为我猜socket.io实现应该更快(所以你不必每次改变路由都打开连接),因此提供更好的用户体验。 还是我错过了什么? 基于Ajax的SPA有什么优势?

Webpack – 如何在基础HTML中要求结果文件(最佳实践)

我刚开始使用Webpack进行SPA,我有一个问题。 我如何在我的HTML中需要结果包/文件? 我应该使用标签还是有更好的做法呢?

在SPA(单页面应用程序)中使用node.js + express.js在服务器端dynamic生成内容的SEO

我的客户端代码是一个单独的页面应用程序(写在knockout.js)与自己的路由系统,所以当谷歌爬虫机器人将尝试访问链接(这与后端请求新的页面无关,但只是客户端的一部分它会要求服务器(node.js + express.js)服务页面(例如'mywebsite / about'),当然服务器将返回404,因为它不知道客户端路由系统。 这是我目前的服务器代码: router.get('*', function(req, res, next) { res.sendFile(path.resolve('../dist/index.html')); }); 我的想法是定义与客户端相同的路由结构,并在search参数中传递客户端路由系统的路由: router.get('/about', function(req, res, next) { res.sendFile(path.resolve('../dist/index.html?tab=about')); }); 然后在客户端,我可以在JavaScript中捕捉并select正确的路线。 在这里当然我有另一个问题 – 据我所知,谷歌机器人不运行JavaScript ..但在这里,我可以使用prerender.io中间件,我猜。 1)这是一个正确的方式去与单页面应用程序生成的内容和search引擎优化? 2)如何从express.js传递search参数?

如何在加载时configurationSPA?

我们正在使用Webpack,React,Node.JS,但我认为这个问题是更通用的具体技术。 在构build开发模式或生产模式时(例如使用DefinePlugin),我可以使用Webpack来configurationSPA。 如何在不同的部署环境下(例如,分段与生产)在生产模式下configurationSPA(在构build时configuration)? 例如,这些不同的部署将与不同的后端服务器API进行通信。 不知何故,SPA必须从服务器获取一些本地上下文,因为它正在被浏览器取得。 或者,也许我们必须在SPA可以安全地获取的每个服务器上有一个自定义的configuration文件? 我们在服务器上使用NodeJS,这个SPA最终将作为一个同构的应用程序运行,这样可以提供帮助。 我们正在将这些应用程序部署在Docker镜像中,并且很容易在部署时configuration其环境。 感谢您的任何build议。