Tag: expression

尝试将RegEx与由promise返回的文本进行匹配 – 获取空string

我正在使用PDF.js从PDF获取文本,然后使用RegEx进行parsing。 parsetext函数接受一个由promise返回的text参数: gettext: function(url){ var self = this; var data = url; console.log('attempting to get text'); return pdfjs.getDocument(data).then(function(pdf) { var pages = []; for (var i = 0; i <= 1; i++) { pages.push(i); } return Promise.all(pages.map(function(pageNumber) { return pdf.getPage(pageNumber + 1).then(function(page) { return page.getTextContent().then(function(textContent) { return textContent.items.map(function(item) { return item.str; }).join(' '); }); }); […]

用Jasmine和Express嘲笑请求对象

我有一个非常简单的方法: module.exports = { login: function (username, password, req, res) { authModule.check_login({login: username, pass: password}).then(function (user) { req.session.regenerate(function () { req.session.user = username req.session.userID = user.id req.session.fullName = user.fullName req.session.email = user.email res.redirect('/user') }) }).catch(function (err) { res.render('login', { unsuccessful: true }) }) } } 在我的unit testing中,我试图validation这个方法是否正确设置会话variables。 我一直试图通过使用jasmine.createSpy来嘲笑请求对象,但似乎没有工作,例如: describe('user_login.login', function () { it('sets the session […]

在节点REST服务器中,Mongo $ sample(聚合)在GET操作中不起作用

我正在使用MongoDB作为持久性数据库来实现REST服务器。 我想实现一个GET操作,返回一个集合中的随机文档,但是当我实现$ sample(聚合)方法时,它的工作方式就好像我正在实现一个返回所有文档的find({})。 这是我在我的server.js文件中使用的代码 app.get("/api/contacts", function(req, res) { //GET: find a random contact db.collection(CONTACTS_COLLECTION).aggregate( { $sample: { size: 1 } }).toArray(function(err, docs) { if (err) { handleError(res, err.message, "Failed to get contacts."); } else { res.status(200).json(docs); } }); }); server.js文件的require部分是这样的: var express = require("express"); var bodyParser = require("body-parser"); var mongodb = require("mongodb"); var ObjectID = […]

MongoDb,NodeJs,Express和Angular 2,来自两个集合的数据join,复制和显示

我有两个mongo集合: 位置:(locationId,locationCity,locationState,locationZip等) carLocations:{carId,carType,carMake,locationId} 我想检索数据 carAvailability: {locationCity, locationState, locationZip, carMake, carType} 在我的nodejs层,这是我想要做的: 首先,我试图通过locationCity,locationState或locationZip检索locationIds数组。 一旦我有了一系列的locationIds,我正试图找回carLocations。 app.get("/api/carsbylocationids", function (req, res) { //console.log(" locationid:" + req.query.locationid); var locationIds = JSON.parse(req.query.locationIds); console.log("locationIds: " + locationIds); console.log("carId: " + req.query.carId); db.collection(carsLocations).find( { 'locationId': {$in:locationIds}, 'carId': req.query.carId } ).toArray(function (err, docs) { if (err) { handleError(res, err.message, "Failed to get items."); } […]

JavaScript的正则expression式看替代或图书馆的build议

我试图用下面的string将以下string匹配到2个组中,但显然它们在JavaScript中不受支持。 正则expression式: ((?<=:).*(?=;))|((?<=,).*$) 在线演示 data:image/jpeg;base64,/abcd1234… –> group1: image/jpeg –> group2: /abcd1234… 然后我试图使用XRegExp库希望它支持后面,但仍然没有成功。 var XRegExp = require("xregexp"); var base64 = "data:image/jpeg;base64,/abcd1234…"; base64 = XRegExp.matchRecursive(base64, '((?<=:).*(?=;))|((?<=,).*$)', 'g'); 但是我得到以下错误: node_modules/xregexp/xregexp-all.js:3376 new RegExp(generated.pattern, generated.flags), ^ SyntaxError: Invalid regular expression: /((?<=:).*(?=;))|((?<=,).*$)/: Invalid group at new RegExp (native) 我的问题是有一种方法来使用JavaScript的原生正则expression式parsing器可能通过颠倒string上面运行正则expression式或者有JavaScript支持后面的库。 提前致谢

计算单词出现次数,允许特殊字符和换行符

我正在尝试构build一个函数来计算短语中词的出现次数。 该function应该包括这样一些情况:短语中的单词具有附加的非字母字符和/或行尾字符。 function countWordInText(word,phrase){ var c=0; phrase = phrase.concat(" "); regex = (word,/\W/g); var fChar = phrase.indexOf(word); var subPhrase = phrase.slice(fChar); while (regex.test(subPhrase)){ c += 1; subPhrase = subPhrase.slice((fChar+word.length)); fChar = subPhrase.indexOf(word); } return c; } 问题是,对于一个简单的值,如 phrase = "hi hi hi all hi. hi"; word = "hi" // OR word = "hi all"; 它返回错误的值。

处理断开连接Express JS抛出错误访问拒绝用户本地主机

你好我正试图处理断开连接我的服务器表示js,我使用句柄断开连接的代码,它会抛出错误访问被拒绝在本地用户。 var connection; function handleDisconnect() { connection = mysql.createConnection(db_config); // Recreate the connection, since // the old one cannot be reused. connection.connect(function(err) { // The server is either down if(err) { // or restarting (takes a while sometimes). console.log('error when connecting to db:', err); setTimeout(handleDisconnect, 2000); // We introduce a delay before attempting to reconnect, […]

在Node中parsingRedis的JSON。 JavaScriptparsing器不喜欢评论

希望你很好 我有一个项目,我想扫描reddit.com/r/pics的JSON。 拉一个随机图像,并显示在网页上。 在https://www.reddit.com/r/pics/.json?jsonp=1中对json进行redis命令,在JSON开始“/ ** / 1('这是抛出Javascriptparsing器” 我可以正则expression式编辑一些字符(见代码),但最终失败 SyntaxError:位置1的JSON中意外的string 如果我删除这些,本地保存该文件,那么它似乎工作正常,如预期。 解决这个问题的最好方法是什么? 我完全错过了什么吗? 提前致谢! 这是我的代码,它在Node.js中 var express = require('express'); var router = express.Router(); var request = require('request'); var fs = require('fs'); const https = require('https'); let detailedObject; let pageNo = 1; let object; let lengthofObject; let urlImg; let newObject; var file = fs.createWriteStream("reddit.json"); // SAVES REDDIT.JSON […]

如何validationNode.js和Express中应该相等的两个字段?

我第一次使用express-validator,如果两个字段相等(如果可以的话),我找不到一个断言的方法。 示例 :提交包含2倍电子邮件地址(标准确认一个)的表单。 我想检查这些字段是否匹配。 我自己find了一个解决方法,但是我不知道我是不是在做一些不必要的事情。 这里是代码(数据通过ajax调用): //routes.js function validator(req, res, next) { req.checkBody('name', 'cannot be empty').notEmpty(); req.checkBody('email', 'not valid email').isEmail(); var errors = req.validationErrors(); // up to here standard express-validator // Custom check to see if confirmation email matches. if (!errors) errors = []; if (email !== email_confirm){ errors.push({param: 'email_confirm', msg: 'mail does not match!', […]

string原型在浏览器中工作,但不在节​​点中

节点: 8.1.0 我有以下原型: String.prototype.toSlug = function () { return (<string>this) .trim() .toLowerCase() .replace(/\s+/g, '-') .replace(/[^\w\-]+/g, '') .replace(/\-\-+/g, '-') .replace(/^-+/, '') .replace(/-+$/, '') } 当我使用它时,像这样: // Mongoose Database Model: let project = new ProjectModel project.slug = title.toSlug() 它似乎不能正常工作。 它所做的只是删除第一个空间,并添加一个破折号,如下所示: // Original: "Bed Time Stories" // Outputs: "BedTime-Stories" // Expected: "bed-time-stories" 正如你所看到的,它甚至没有将string转换为小写字母。 然而,当我在jsfiddletesting这个,它创build正确的输出string。 这是什么原因造成的?