Articles of expression

我的控制器是否应该采用(res,req)参数或已经提取的参数?

我想知道我应该用expressJS来组织我的路由吗? 在控制器中parsingParams router.get('/users/:id', UserController.get); class UserController { get(res, req) { var id = res.params.id; UserModel.get(id, function(user) { res.send(user); } } } Paramsparsing路由 router.get('/users/:id', function(req, res) { var id = req.params.id; UserController.get(id, function(user) { res.json(user); } }); class UserController { get(id, fn) { UserModel.get(id, fn); } } 我发现第二个版本Paramsparsing路线更容易 unit testing 在URL参数或请求主体发生变化的情况下 但是我发现的大部分例子都使用了第一个版本,为什么呢?

正则expression式在文本文件中匹配文件名

使用Node.js,我parsing一个文件并build立一个find的图像名称的数组。 我想知道是否有人可以帮我打孔在我的正则expression式。 到目前为止,我还没有能够打破它。 var filename = (line.match(/((?:((?:[^\r\n\t\f\/])*)\.(?:(png|gif|jpe?g|pdf|xml|apng|svg|mng)\b)))/gmi) || []).pop();

正则expression式匹配string中的开始([)和结束(,)(仅)

这是我的string: [{ "name": "Neuromancer","genre": "cyberpunk" }, 我想用replace方法删除[in the beginning和come(,)。 我这样做是因为我无法弄清楚如何正确编写正则expression式: line = line.replace(/\[/,""); line = line.replace(/\,$/,""); 谢谢 :)

Express会话和PassportJS之间的区别

我正在考虑使用快速会话存储针对OAuth 2提供程序进行身份validation的用户的访问令牌,并向客户端应用程序提供安全签名的Cookie。 根据我的理解,我可以在会话存储服务器端的后续请求(例如mongodb)中检索与cookie关联的令牌,然后我可以使用这个请求中的承载授权标头来使用Express路由分离终点。 我遇到了PassportJS,并试图弄清楚我是否需​​要在我的设置中使用它。 目前,我正在使用快速应用程序处理loginPOST请求,然后使用资源所有者密码凭据授予types请求stream来发出访问令牌请求。 这工作正常,我收到一个访问令牌以及来自提供程序的刷新令牌和到期时间。 据我所知,PassportJS为各种提供者提供了authentication策略,但是我不确定它会支持在我的情况下使用的授予types。 另外我已经在做请求和接收令牌的工作,所以不知道PassportJS对我有多大的好处。 从阅读快速会议文档,我认为这将给我所有我需要的,再加上我可以设置cookie的到期时间,我从api网关得到的令牌到期时间。 我认为PassportJS坐在快速会话之上,并且简单地访问快速生成的会话,是正确的吗?

想要一个额定的expression式来parsing一个↵字符的电子邮件答复

想要parsing下面的电子邮件线程的最新答复。 也就是说, 你好Nikhil Bopora,我只是在简要介绍一下,我正在build立一个替代的电子借贷平台。 我写的一般正则expression式覆盖各种用例/[\s]*([\s\S]*.)[\s]*\n\n[\s]*On [\s\S]*.<[\s\S]*.> wrote/不是在字符上工作。 有人可以帮我写一个良好的正则expression式在JavaScript来parsing这个。 Nikhil,你好,简单的说,我正在build立一个备用的电子借贷平台。在下午1点16分,Sun,Deepak Modak写了: Deepak Modak已经发出了一个消息 > I>我正在尝试构build一个金融产品,需要您的反馈和洞察力。>请求的时间段:> —————– ———>> Mon Jan 11 2016,10: 00 PM↵>↵>

将节点js中的对象转换为一个到多个联接响应

我在MySql中有3个表,它们使用一对多关系进行连接。 在js节点中,我现在有多行将它们转换为包含这些数据的单个对象。 防爆。 1.用户表具有用户详细信息2.卡表(信用卡或借记卡用户具有)3.交易表(与卡完成交易) 我有一个POJO,看起来像这样: user:{ "firstname":"sandy", … "cards":[ //this is a array of cards {"card_no":"12321", … "transactions":[ //this is list of transactions ]} ] } 从我的MySQL查询我得到所有这些作为多行,现在我不得不把它们转换成POJO。 任何人都可以build议我如何做到这一点? 谢谢。

生成JoivalidationSequelize模型

我用expressjs开发了一个API, Sequelize是我用过的ORM。 我想整合快速validation到我的API来validation请求主体和参数。 express-validation框架使用Joivalidation规则。 但是因为我已经在Sequalize模型中定义了validation规则,所以我不喜欢使用Joi来重新定义validation规则来请求主体validation。 我只是想知道是否有任何方法或库根据在Sequelize模型中定义的validation生成Joivalidation规则。 否则,处理这个问题最好的办法是什么?

如何检查express / node js中get方法中是否有支持的参数?

我在我的node.js后端有一个方法: app.get('/reports', function(req, res){ var amount = req.param('amount'); var longitude = req.param('long'); var latitude = req.param('lat'); var distance = req.param('distance'); var numberOf = req.param('numberOf'); 我使用一个validator.js( https://github.com/chriso/validator.js )插件来validation它的input。 所以例如它看起来像这样的数量: var amount = req.param('amount'); if (amount && !validator.isNumeric(amount)) { return res.status(406).send("Please send a valid amount"); } 当用户键入: /reports?amount=aaa他会得到错误。 当他键入/reports?amount=2他会得到过滤结果。 但是,例如,当用户input一些随机参数,例如/reports$randomString=21我想给他返回一个消息,对不起,但是randomString不是一个有效的参数。 我怎么能做到这一点,而不知道用户可以键入什么样的不同string?

Nodejs可选正则expression式命名组的插件或代码片段

string line 1 = [ABC] line 2 = [AC] line 3 = [BC] 正则expression式 /\[?(?<groupA>[A])?(?:[ ]*)?(?<groupB>[B])?(?:[ ]*)?(?<groupC>[C])\]/gm 如何使用插件或代码片段实现以下行为? 第1行 result.groupA = A result.groupB = B result.groupC = C 2号线 result.groupA = A result.groupB = null/undefined result.groupC = C 第3行 result.groupA = null/undefined result.groupB = B result.groupC = C 我已经试过名为js-regexp npm包,但是该包依赖于 var matched = RegExp.prototype.exec.call() 这将返回一个匹配,未定义/不匹配组的位置不能被识别。 […]

正则expression式:获取从string使用javascript编号格式的nnn?

我正在尝试从string获得数字即1.0.3。 我只想要用两个点格式化的数字,在他们之前有版本号。 我的正则expression式实现是否正确。 这是工作,但会在任何情况下失败? var str = "https://example.xycom/z/ver#1.5.0"; var res = str.match(/ver#.\.(?:(\d+)\.)?(?:(\d+)\.)?(\*|\d+)/g); return res; https://jsfiddle.net/tthfkzjt/