Tag: expression

在JavaScript中查找文本string

我有一个有效的JavaScript文件(utf-8),我需要从中自动提取所有文本string。 为了简单起见,该文件中不包含任何注释块,只有有效的ES6 JavaScript代码。 一旦我find'或"或“的事件,我应该扫描文本块的末尾,是所有可能的变化,如"'" , '"' ,' “,”\“, '" ,”\“等。 有没有一个已知和/或可重复使用的algorithm来检测有效的ES6 JavaScript文本块的结束? 更新-1:我的JavaScript文件不只是大,我也必须作为一个stream块,处理它,所以正则expression式绝对不可用。 我不想让我的问题复杂化,提到联合的代码块,我会自己弄清楚,如果我有一个algorithm,可以为内存中的单一代码工作。 更新-2:我得到了这个工作最初,感谢这里给出的许多build议,但由于正则expression式再次卡住了。 正则expression式的例子,打破迄今为止build议的任何文本检测技术: /'/ /"/ /\`/ 通过仔细研究这个问题,通过阅读: JavaScript如何检测正则expression式? ,恐怕在JavaScript中检测正则expression式是一个全新的球类游戏,值得单独的一个问题,否则就太复杂了。 但是,如果有人能够在这个问题上指出我的正确方向,我非常感激。 更新3:经过大量的研究后,我很遗憾地发现,我不能提出一个适用于我的情况的algorithm,因为正则expression式的存在使得任务比最初想象的要复杂得多。 根据以下内容: 当parsingJavaScript时,什么决定了斜杠的含义? ,确定JavaScript中正则expression式的开始和结束是最复杂和最复杂的任务之一。 没有它,我们不知道什么时候符号' ,'''和'打开一个文本块,或者它们是否在正则expression式中。

使用Node.js,Express和Trialpay进行HMAC MD5validation

我试图validation使用Node.js和Express从TrialPay发送的消息。 TrialPay使用HMAC-MD5哈希签名请求,并提供有关validation的说明 。 这是我的代码: app.post('/trialpay', function(req, res) { var key = "[MY MERCHANT KEY]"; var hash = req.header("TrialPay-HMAC-MD5"); var data = req.body.toString(); var crypted = require("crypto").createHmac("md5", key) .update(data) .digest("hex"); if (hash == crypted) { res.writeHead(200, {"Content-Type": "plain/text"}); res.end("Success!"); } else { throw new Error("Invalid TrialPay Hash"); } }); 这显然不起作用(散列不匹配)。 免责声明:我对Node.js非常陌生,并没有什么Javascript的经验,首先。 UPDATE 我没有意识到这个链接是受保护的。 TrialPay使用您的通知密钥(在您的账户信息中设置)作为签署HMAC的密钥。 对于GET请求,问号后面的查询string(在URL中)被签名。 对于POST请求,整个POST正文都被签名。 […]

我如何更新翡翠模板forms的ajax文章?

我已经使用默认的视图引擎玉来build立一个基本的node.js web应用程序。 当用户第一次加载页面时,会发生以下情况 app.get('/', function(req, res){ res.render('index', { title: 'Test', mode: "user" }); }); 我不能解决的是如何改变我最初通过ajax调用进入玉模板的参数。 app.post('/', function(req, res){ console.log(req.body.list); res.redirect('back'); // I imagine the code needs to go here and look somewhat like the following // // res.?update-view({ // mode: "admin" // }); }); 如果有人有这方面的工作经验,您的意见将不胜感激。

节点asynchronous路由代码

我使用快车4.0使用节点。 在互联网上(包括文档),我找不到在路由中embeddedasynchronous代码的任何东西。 使用中间件很简单: app.use('/something', function (req, res, next) { doSomethingAsync(function(err, probablySomethingElse) { // probably some error checking next(); }); }); 路线上的问题是没有nextcallback,那么如何expression知道何时移动到下一个工作? app.get('/something', function (req, res) { res.render('someTemplate'); // no next() here, but it still works }); 如果我不得不猜测,我会说,在上述函数退出后,快速移动到下一个任务。 但出于好奇,我已经推出了以下代码… app.get('/something', function (req, res, next) { console.log(next); }); …实际上有一些nextcallback通过。 那么这里发生了什么? 它在幕后如何工作? 我怎样才能把asynchronous代码呢?

如何在服务器重新启动时在节点js中维护持久性会话?

据我迄今为止从服务器重新启动后,使会话持久性的计算器的答案。 有4种可能的方式,我考虑用我的意思应用程序。 cookie-Sessions https://www.npmjs.com/package/cookie-session 使用Jsonnetworking令牌(JWT) https://www.npmjs.com/package/jsonwebtoken 使用connect-mongo / connect-redis passport.js 现在我的疑问是,如果我将重新启动我的服务器在Mongo和Redis。 会话将仍然在那里,因为他们是外部数据存储。 但如何使我的会话持久使用JWT和cookie会话。 这些会话variables在哪里存储。 在passport.js的情况下,我遇到的解决scheme是使会话持久性是将会话数据存储在connect-mongo / connect-redis中。 有没有其他的方式在护照使会议持续?

如何通过socket.io对象访问express.session.MemoryStore?

我正在做一个loginfunction app.post('/teacherlogin', function(request, response) { var username = request.body.username; var password = request.body.password; con.query('SELECT t_id from login_teacher where username="'+username+'" and password="'+password+'"',function(err,results){ if(results.length > 0) { request.session.regenerate(function(){ request.session.user = username; request.session.type = 'teacher'; request.session.id = results[0].t_id; response.redirect('/teacherhome'); }); } else { response.redirect('teacherlogin'); } }); }); 现在我想发出我已经存储到会话对象的'id'和'type'。 我应该怎么做? 我读过这篇文章,但没有经验,我正面临使用它的困难。 我已经在我的代码中使用它了 var MemoryStore = express.session.MemoryStore; var sessionStore = […]

Socket.io 400(坏请求)

我在我的服务器上有这段代码 var express = require('express'); var routes = require('./routes'); var user = require('./routes/user'); var http = require('http'); var path = require('path'); var app = express(); var server = require('http').Server(app); var io = require('socket.io')(server); server.listen(3000); io.sockets.on('connection', function (socket) { console.log("Socket connected"); }); 我只是想创build一个连接 和客户端上 – <script src="public/javascripts/socket.io.js"></script> <script> var socket = io.connect('http://127.0.0.1:3000'); </script> 而当我打开我的浏览器,我在控制台中得到这个错误: GET http://127.0.0.1:3000/socket.io/1/?t=1404410309733 […]

hogan.js与母版页或布局

是否有可能以任何方式使用hogan.js作为模板引擎的布局,如“剃刀或母版页在.NET中”? 我会得到这样的结果: layout.hjs:包含“标题”和“页脚” 和 index.hjs:将包含layout.hjs并且只包含页面内容。

如何在nodejs中转义字符?

我想知道你将如何逃避nodejs中的特殊字符。 我有一个string$ what $ ever $,我需要它逃脱像\ $什么\ $ ever \ $之前,我与它调用一个python脚本。 我累了querystring NPM包,但它做了别的。 谢谢!

HTML5模式 – ui-router – 未捕获SyntaxError:意外的标记<

努力得到html5模式与UI路由器很好地玩,但似乎有很多问题 一个我现在无法绕过是非常奇怪的,所以任何build议表示赞赏。 我有这些国家: .state('app', { url: '/app', templateUrl: 'views/app/app.html', resolve: { loggedin: checkLoggedin } }) .state('app.docs', { url: "/docs", templateUrl: "views/app/app.docs.html", controller: "DocsController" }) .state('app.create-doc', { url: "/docs/create", templateUrl: "views/app/app.editor.html", controller: "DocController" }) .state('app.edit-doc', { url: "/docs/:short", templateUrl: "views/app/app.editor.html", controller: "DocController" }) .state('app.account', { url: "/account", templateUrl: "views/app/app.account.html", controller: "AccountController" }) 当不是在html5模式(使用hashbang),我导航到/#/app/docs/create一切正常工作,没有在控制台中的错误。 但是,当IN html5模式,我导航到/app/docs/create我得到了一个错误在控制台中指出Uncaught SyntaxError: […]