Articles of expression

获取执行上下文的Node.js编程模式

我在node.js中编写一个web应用程序 现在,服务器上的每个处理都始终处于会话的上下文中,当请求到达服务器时,会在第一阶段检索或创build该会话。 之后,执行stream程将通过多个模块和callback。 我正在努力的是创build一个编程模式,以便在代码中的任何一点,会话对象是可用的,没有程序员要求它在每个函数调用中作为parameter passing它。 如果所有的代码都在一个单独的文件中,我可能有一个闭包,但是如果有其他文件中的其他模块的函数调用,我如何编程,使会话对象在被调用的函数中可用,而不传递它作为参数。 我觉得这两个文件中的两个函数应该有一些联系,但是如何安排这个就是我陷入困境的地方。 总的来说,我想说总有一个执行上下文可能是一个会话或networking请求,其处理分散在多个文件中,并且执行上下文对象在所有点上都是可用的。 实际上可以有多个用例,例如每个networking请求有一个Log对象或每个会话有一个Log对象。 做这项工作所需的pipe道应该是横向安装的,不需要应用程序员烦恼。 他只知道执行上下文在所有地方都可用。 我认为这应该是大家面对的普遍问题,所以请给我一些想法。 以下是问题 MainServer.js app = require('express').createServer(); app_module1 = require('AppModule1'); var session = get_session(); app.get('/my/page', app_module1.func1); AppModule1.js app_module2 = require('AppModule2'); exports.func1 = function(req,res){ // I want to know which the session context this code is running for app_module2.func2(req,res); } AppModule2.js exports.func2 = function(req,res){ // I […]

Node,Angular,Express和视图引擎

我最近开始使用Angular,Node和Express。 我已经在Angular中创build了一些基于浏览器的应用程序,并试图将它们移植到Node和Express中的服务器应用程序中。 (特别是,将会从Twitter和另一个Wikidot中提取数据。) 由于我正在使用Angular进行数据注入和模板化,所以我不想使用其他视图引擎,如EJS或Jade。 我想使用已经写好的HTML / Angular代码尽可能less的修改。 我很困惑,为什么Express需要我有一个视图引擎。 获取此代码作为Node / Express应用程序工作的最简单方法是什么?

在string中创build一个文本文件在node.js中,并作为响应进行stream式处理

1)我正在使用express.js 2)我有一个string“Hello world!” 3)我想要一个用户点击 <a href=/download>Download</a> 4)用户应该得到Hello.txt下载的文本,而不是打开一个标签的文字。 5)我已经四处寻找方法来实现这一点,我猜测它与创buildreadstreams从缓冲区和pipe道到响应有关,但我大多数的例子处理从磁盘读取实际的文件,我不想读取磁盘,我只是想用一个string创build的文件作出回应。 谢谢!

nodejs / express – streamstdout立即到客户端

我产生了下面的孩子: var spw = spawn('ping', ['-n','10', '127.0.0.1'])我想在客户端( 浏览器 ) 一个 ,而不是一个整体。 到目前为止,我试过这个: app.get('/path', function(req, res) { … spw.stdout.on('data', function (data) { var str = data.toString(); res.write(str + "\n"); }); … } 然后: … spw.stdout.pipe(res); … 在这两种情况下,浏览器等待10个ping完成,然后打印整个结果。 我想一个接一个,怎么做到的? (客户端正在调用…/path和console.logs结果) 编辑:虽然我确实认为,websockets是必要的,我只是想知道是否有任何其他的方式。 我看到了几个令人困惑的SO答案 ,博客post(在这篇文章中,在第一步OP把日志发送到浏览器),这没有帮助,所以我决定去寻求一些关注。

如何拉扯@提到string像Twitter中的JavaScript

我在Node.js中编写了一个应用程序,它允许用户在twitter上提示消息。 我希望能够find用户并向他们发送通知。 为了做到这一点,我需要拉@usernames从node.js中的string查找提到? 任何build议,正则expression式,问题?

在开发环境中使用Angular CLI连接express.js

我find了一个很好的教程,解释了如何使用Angular CLI设置express.js,但在本教程中,angular度应用程序被编译到生产dist文件夹中: https : //scotch.io/tutorials/mean-app-with-angular- 2 -和-的棱angular-CLI 如何将express.js与Angular CLI集成,但我希望express.js能够与Angular应用程序的开发版本一起工作,并且如果我更改了express或angular应用程序,我希望nodemon重新启动。 已经花了八个小时试图让这个工作。 谢谢! 我不想在每次修改Angular应用程序时运行“ng build”(这需要太长的时间) – 我想要在我的angular度应用程序中保存更改时立即重新加载(就像我正在运行'ng serve ')或表示应用程序。 我find了一个教程,在这里你使用Express来连接Angular 2 QuickStart,它可以工作,但是我正在使用Angular CLI。 我知道Angular CLI使用WebPack,而QuickStart使用System.js

如何使用id-aes256-GCM与Node.JSencryption? “TypeError:DecipherFinal失败”

我想要使​​用经过validation的encryptionscheme(如AES-GCM)在Node.js中encryption一些数据。 如果我运行以下示例代码 app.get("/test", function(req,res) { var key = "12345678901234567890123456789012"; var iv = "123456789012"; var cipher = crypto.createCipheriv("id-aes256-GCM",key.toString("binary"),iv.toString("binary")); var decipher = crypto.createDecipheriv("id-aes256-GCM",key.toString("binary"),iv.toString("binary")); console.log(decipher.update(cipher.update("bla"))); console.log(decipher.update(cipher.final())); console.log(decipher.final()); }); 我没有得到一个控制台输出,但错误消息“TypeError:DecipherFinal失败”。 如果我使用密码AES-256-CTRF而不是“id-aes256-GCM”,这个代码工作正常,并在控制台上打印“bla”。 我究竟做错了什么? 编辑: 进一步调查显示,cipher.update(“bla”)返回“â”(单个字符…奇怪),cipher.final()返回一个空string。 我认为这不能是一个正确的密文,至less应该有明文的大小…

Express.js + Less:如何正确configuration

我尝试了模块“less”和“less-middleware”。 我尝试了所有教程中find的所有不同的代码片段。 没有可用的文档。 有人可以请解释如何configurationExpress.js和更less,以便更less的正确预编译?! 使用以下问题作为指导: 你可以使用'less' 模块还是'less-middleware'模块? 什么是官方/支持的方式? 什么是优越? /public 目录结构应该如何? (你需要的任何特定文件夹?'style'/'less'/'css'?还是由你自己决定?) 如何configuration您的快速应用程序有关您的目录结构(从问题2)。 (静态文件和编译器选项或更less的中间件,这里什么目录是重要的) 如何从HTML中引用我的预编译样式表 ? (用.less或.css?什么引用types?什么目录path?) 如果有人可以回答这个问题,那会很好:-)

dynamic数据Express.JS的caching控制

如何在express.js中设置json响应中的cach-controll策略? 我的JSON响应根本没有改变,所以我想积极caching。 我发现如何对静态文件进行caching,但找不到如何在dynamic数据上进行caching。

使用Express JS .all()方法:检测哪个VERB被实际使用

我将创build一个/api端点,盲目地将请求和响应来回传递给传统的RESTful API系统(用Ruby编写,托pipe在不同的域上)。 这是一个中介的过渡阶段,所以应该只是工作。 所以,我看到app.all()可以轻松实现。 但是,由于API是RESTful,我还必须维护用于请求的HTTP动词 – 因此,我可以从req对象中检测到它吗? 如果没有,当然我可以订阅5个处理程序的GET,PUT,POST,DELETE,OPTIONS,但是要避免这个好多了。 另外,我该如何处理请求体(查询string和有效载荷)? 我假设我需要手动重新创build查询string从parsingreq.query和传递req.body request https://github.com/mikeal/request是 – 是吗?