Tag: underscore.js

使用mongoose对MongoDB进行mapreduce时,不能使用underscore.js中的reduce函数

我有一个电影collections,每部电影有几个明星,例如: { movie: "Pride & Prejudice", starList: ["Keira Knightley", "Matthew Macfadyen"] } { movie: "Begin Again", starList: ["Keira Knightley", "Mark Ruffalo"] } 我想得到一个倒序索引,每个明星都有几部电影 { star: "Keira Knightley", movieList: ["Pride & Prejudice", "Begin Again"] } 这可以通过在MongoDB上使用mapreduce来完成。 我用mongoose驱动程序使用nodejs。 以下是代码: var _ = require("underscore"); var o = {}; o.scope = { _: _ }; o.map = function() { […]

比较两个对象并删除之间的重复键

我正在试验的对象,我想要实现的是删除在object1find的键如果这些键存在object2 。 这是一个例子: var original = { a: 1, b: 2, c: 3, e: { tester: 0, combination: { 0: 1 } }, 0: { test: "0", 2: "hello" } }; var badKeys = { a: 1, b: 2, 0: { test: "0", } } var expectedResult = { c: 3, e: { tester: 0, […]

如何在node.js中转义EJS模板代码以在客户端进行评估?

我使用服务器端的node.js / ejs和客户端的backbone.js。 服务器端和客户端都使用相同的模板样式。 所以问题是,如果我把模板代码放在模板里面,那么它仍然会在服务器端被parsing。 如果发现这样的工作: <%- "<%= done ? 'done' : '' %\>" %> 但是,恕我直言,这使得整个代码的使用方法使整个使用模板无用。 你将如何处理这个? 有没有一种方法来定义EJS模板内的代码块,不会像其他模板语言中使用的{literal} -tag那样被parsing? 更新:现在我使用骨干的_.templateSettings在客户端使用不同的分隔符。 更新:在JSP上下文中有一个类似的解决scheme:JSP 内的Underscore.js模板

使用underscore.js模板一个JavaScript文件

我在express.js服务器上使用node.js进行一些其他的调用,我的客户端使用backbone.js模型和视图。 我正在使用underscore.js模板一些小的HTML代码的骨干观点。 我有一个简单的login模块,使用rest电话来validation用户,一旦validation我显示login后页面的用户。 现在在我为应用程序编写的JavaScript中,有一些地方需要在用户validation生成的url中包含一个随机数,然后返回给客户端。 所以,让我更加清楚的写下步骤1.客户端看到login页面,input用户名和密码2.服务器生成一个令牌并将其发送回客户端3.所有后续的进一步服务调用包括这个令牌一个path参数。 我正在尝试一个解决scheme,在我试图模板app.js JavaScript文件,并使用express.get服务它下面是testing代码,我试图截至目前,只是为了certificate这个概念。 app.get('/js/:filename', function(req, res) { console.log(); var fname = process.env.PWD + "/public/js/" + req.params.filename; var obj = { user : req.session.user }; fs.readFile(fname, function(err, data) { if (!err) { var returnstring = _und.template(data, obj); res.send(returnstring); } }); }); 我正在尝试用一个非常简单的文件(test.js)截至目前 var a = '<%- user %>'; 每当我试图模板,并得到它在响应中,我使用http://localhost:5555/js/test.js ,我得到完全相同的响应,而不是设置的用户值在会议上。 我将不胜感激这个或任何其他可能存在的解决scheme,我可以尝试node.js,即其他模板库等。

下划线组sorting

我有一个关于函数式编程的问题。 我使用underscore.js库。 让我们考虑一些用例。 我有一些重复标签的数组,我需要计算每个标签在数组中的出现次数,并根据出现次数进行sorting。 为了计算,我可以使用countBy多less个标签 _.countBy([1, 2, 3, 4, 5], function(num) { return num % 2 == 0 ? 'even': 'odd'; }); => {odd: 3, even: 2} 但在这里,因为我有一个散列,这对订单没有意义,所以没有sorting。 所以在这里,我需要将散列转换为数组然后对其进行sorting并将其转换为散列。 我很确定有这样一个优雅的方式,但我没有意识到这一点。 我将不胜感激任何帮助。

创build一个更简单的嵌套函数的方法

我正在寻找降低像这样的代码的开销 foo(bar(baz("hello"))) // function hell 理想情况是这样的 var fbb = bind(foo, bar, baz) foo("hello") 这是否存在? 本机还是图书馆? 我通过下划线和绑定 。

发射到特定的套接字(如耳语),其中包含特定的socket.name

我有我的sockets这样存储在一个对象“人”。 但是现在我想在people.name中提取符合条件的对象,例如[“4323”,“9”,“43535”],例如9.意思是在这种情况下提取“OGyF_FMFbsr0ldcbAAAK”套接字。 通过导航[“4323”,“9”,“43535”]来查找它们是否在人员中,然后向包含people.name === 9的套接字发送通知。 可能不止一个套接字。 所以。 对于每个“参加” ["4323","9","43535"] 在人们” { "ZA-CJOc1PtiwDVxkAAAD": {"name":"4","owns":"2-0-62","inroom":"2-0-62","device":"desktop"}, "wKg2rcFSHgcl4m3WAAAG": {"name":"3","owns":"2-0-110","inroom":"2-0-110","device":"desktop"}, "OGyF_FMFbsr0ldcbAAAK": {"name":"9","owns":null,"inroom":null,"device":"desktop"} } 然后发射 io.sockets.socket(id).emit("notification", result); 问题: 如何使正确的代码select套接字来发送通知? 那么如何发出每个通知呢? 提前致谢

Parse-Server本地安装 – 外部模块

我用本GUID在本地机器上成功安装了Parse-Server。 我首先尝试了全局安装,然后我试着更好地理解(这是我第一次看到与Node.js相关的东西),并安装在本地目录中。 我觉得应该是一样的。 这是我做的: npm install parse-server parse-dashboard underscore 这是目录的样子: /parse: ls dashboard-config.json logs node_modules ls node_modules/underscore LICENSE README.md package.json underscore-min.js underscore-min.map underscore.js ls node_modules/parse parse/ parse-dashboard/ parse-json/ parse-server/ parseurl/ 接下来我尝试包括我开发的云代码。 main.js有这样的内容: //var Image = require("parse-image"); var _ = require('underscore'); … 这是我如何启动服务器: node_modules/parse-server/bin/parse-server \ –appId APPID –masterKey MASTERKEY \ –databaseURI mongodb://localhost:27017/MyAPP \ –cloud /absolutepathfor/MyApp/cloud/main.js 和我得到的错误 […]

Underscore.js油门不工作

目的 图我的代码有什么问题,或者如果underscore.js油门工作,它应该。 背景 我在一个文件中有一个巨大的邮政编码列表,我正在阅读这些代码并粘贴在控制台上。 我试图使用Underscore.js throttle()函数 ,但是我的代码在两次运行后停止(即使我有几十个),其余的值从不打印。 码 我的代码是在一个非常简单的NodeJS项目。 我创build了一个我正面临的情况的MCVE : "use strict"; //requiremetns let fs = require('fs'); let readLine = require('readline'); let _ = require('underscore'); //constants const INPUT_FILE = 'dataset.txt'; const RADIX_CONVERSATION = 10; const THROTTLE_DELAY = 500; let init = function() { let lineReader = readLine.createInterface({ input: fs.createReadStream(INPUT_FILE), output: process.stdout, terminal: false }); […]

如果从cron运行,则不能将模块导入到节点脚本中

我有模块下划线全局安装npm。 如果我运行脚本 /usr/local/bin/node /home/olmo/project/processDrivesMultiUser.js 无论我在哪里,path都可以运行,但是如果我运行这样的cronjob: 3,18,33,48, * * * * /usr/local/bin/node /home/olmo/project/processDrivesMultiUser.js 我得到这个错误: Date: Wed, 10 Sep 2014 16:26:01 -0600 From: Cron Daemon <root@db.local> To: olmo@db.local Subject: Cron <olmo@db> /usr/local/bin/node /home/olmo/project/processDrivesMultiUser.js module.js:340 throw err; ^ Error: Cannot find module 'underscore' at Function.Module._resolveFilename (module.js:338:15) at Function.Module._load (module.js:280:25) at Module.require (module.js:364:17) at require (module.js:380:17) at Object.<anonymous> (/home/olmo/sandbox/api_ievwebapp/parseAdminScripts/processDrivesMultiUser.js:20:9) […]