Tag: underscore.js

尝试在multidimensional array中使用.sortBy

我想sorting我刚刚嵌套的数组中的“num”数组: _ = require('underscore'); _.nst = require('underscore.nest'); var data = [ {'name' : 'name 1', 'num' : 40}, {'name' : 'name 1', 'num' : 20}, {'name' : 'name 2', 'num' : 10}, {'name' : 'name 2', 'num' : 50}, {'name' : 'name 2', 'num' : 40}, {'name' : 'name 2', 'num' : 70}, {'name' : […]

节点不打印完整的对象

我很难过 我用控制台中包含嵌套数组的另一个对象testing了这个方法,并得到了预期的结果 db_status_emitter.on("components_found", function (returned_item) { //console.log(returned_item); prun_item.type = returned_item.type; prun_item.components = returned_item.components.slice(0); switch (prun_item.type) { case "one-sided-mattress": prun_item.quantity = prun_item.total_panel_quantity; var top_panel = underscore.find(prun_item.components, function (element) { return element.component_category == "top-panel" }); var border = underscore.find(prun_item.components, function (element) { return element.component_category == "border" }); top_panel.quantity = border.quantity = prun_item.quantity; top_panel.style = "91000000"; border.style = […]

邮差回应:无法从服务器得到任何回应

我试图创build一个待办事项列表的应用程序,并检查与POSTMAN在每一种types的请求。 GET和POST请求正常工作。 但是PUT和DELETE不能按预期工作。 正如预期的意思:这是不显示404既不显示结果,而是显示错误,即无法得到任何答复。 这是我的代码put和delete: var todos = []; // DELETE /todos/:id app.delete('/todos/:id', function(req,res){ var todoId = parseInt(req.params.id, 10); var matchedTodo = _.findWhere(todos, {id: todoId}); if(!matchedTodo){ res.status(404).send(); }else{ todos = _.without(todos, matchedTodo); res.json(matchedTodo); //console.log(todos); } }); // PUT /todos/:id app.put('/todos/:id', function(req,res){ var todoId = parseInt(req.params.id, 10); var matchedTodo = _.findWhere(todos, {id: todoId}); var body = […]

node.js与Linux上的下划线错误:找不到模块“下划线”

我在ec2上使用亚马逊linux。 使用nvm安装节点v4.4.5并运行我的脚本,我有这个错误: Error: Cannot find module 'underscore' 我试图npm install underscore –save和npm install underscore -g 。 它只是没有工作。 我不知道为什么是错的。 有人可以帮忙吗? server-0(err):在Function.Module._load(module.js:276:25)server-0(err):在Function._load(/home/ec2-user/.nvm/versions/node/v4。 server / 0(err):at Module.require(module.js:353:17)server-0(err):at(在/etc/rc.lib/modules/pm2/model/modules/pmx/lib/proxy.js:62:21) require(internal / module.js:12:17)server-0(err): 在对象。 (/var/server/routes/v1/auth.js:6:11)server-0(err):在Module._compile(module.js:409:26)server-0(err): 在Object.Module._extensions..js(module.js:416:10)server-0(err): 在Module.load(module.js:343:32)服务器0(错误):在Function.Module._load(module.js:300:12)服务器0(错误):错误:找不到模块'下划线' server-0(err):在Function.Module._resolveFilename(module.js:325:15)server-0(err): 在Function.Module._load(module.js:276:25)server-0(err):at Function._load(/home/ec2-user/.nvm/versions/node/v4.4.5/lib/node_modules/pm2在module.require(module.js:353:17)server-0(err):at require(internal / module.js :12:17)server-0(err): 在对象。 (/var/server/routes/v1/auth.js:6:11)server-0(err):在Module._compile(module.js:409:26)server-0(err): 在Object.Module._extensions..js(module.js:416:10)server-0(err): 在Module.load(module.js:343:32)server-0(err):在Function.Module._load(module.js:300:12)

按说明过滤JSON对象expressJS / UnderscoreJS

[ { "id": 1, "description": "Take out the trash", "completed": false }, { "id": 2, "description": "Get food tonight", "completed": false }, { "id": 3, "description": "Hit the gym", "completed": true } ] 示例arrays在上面。 我想说只得到满足某个查询的对象。 var express = require('express'); var app = express(); var bodyParser = require('body-parser'); var _ = require('underscore'); app.get('/todos/query/:des', function (req, res){ […]

下划线的扩展函数是否recursion地扩展(或者可以select这样做)?

jQuery的扩展函数有recursion扩展的选项,我在创buildjsonconfiguration文件时使用。 我可以看到,下划线有一个扩展函数 ,但它甚至没有提到recursion。 我认为这意味着它不会recursion地扩展,但是我想在这之前我会问这个问题,然后浪费很多时间。

从嵌套的asynchronous函数调用中返回谓词

我需要过滤一个数组,取决于从外部API中获取数据所获得的每个元素的子元素是否与条件匹配。 代码可能比解释更清晰: //Suppose there is an array filled //_.filter(array, predicate) var filtered_array = _.filter(array,function(element){ //Async operation webservices.doStuff(element, function(sub_element){ //This return is meant for the filter, but returns on .doStuff callback return sub_element.thing === "ok"; }); }); 这里的问题是我不知道如何返回谓词的结果,因为webservices.doStuff是asynchronous的! 任何想法?

使用_.each将dynamic属性添加到Mongoose结果中

我想dynamic地添加一个属性到Mongoose结果的每个对象,但它不会按预期工作。 Font.find() .exec(function (err, fonts) { if(err) return res.send(err); _.each(fonts, function(item, i) { item.joined_name = item.name + item.style.replace(/\s/g, ''); console.log(item.joined_name); // works fine }); res.send(fonts); // `joined_name` property is nonexistant }); 一定是简单的,但我不明白为什么。 欢迎替代品!

下划线_.find当它存在时,没有find数组中的元素

我试图使用Underscore.js libarary的findWhere函数有效地从node.js服务器上的数组中find一个对象,我不明白为什么它总是返回undefined。 我使用节点控制台testing了该函数,并且该对象definetely包含具有指定键的对象,但在使用findWhere时仍然不返回任何内容。 在这里,我确保我正在查找的“夹具”键的值确实等于我希望返回的对象中的匹配值: '55785f4e38bd12511018145d'==预测[0] .fixture; 真正 当检查在查找的数组中保留的值是什么时,我确认该值是否存在: 预测 [{fixture:'55785f4e38bd12511018145d'}] 检查我希望返回的值: 预测[0] .fixture '55785f4e38bd12511018145d' 运行findWhere查询返回undefined: var foundPrediction = underscore.findWhere(predictions,{fixture:'55785f4e38bd12511018145d'}); 未定义 我能想到的唯一原因是,这可能与铸造或可能是一个'==='在函数中返回false,但有什么办法,我可以findWhere按照需要返回对象,或将我不得不求助于使用for循环的手动search? 提前致谢!

循环播放mp3文件名并将id3标签提取到nodejs中的另一个数组中

function extractId3(value, index, list) { if (path.extname(value) === '.mp3') { id3js({ file: '/Users/user/materialApp/client/songs/' + value, type: id3js.OPEN_LOCAL }, function(err, tags) { return tags.v2.image; }); } } exports.index = function(req, res) { fs.readdir('/Users/user/materialApp/client/songs', function(err, files) { images = _.map(files, extractId3); console.log(images); res.json(files); }); }; 我对web开发和nodejs的asynchronous性质相当陌生。 我试图循环播放fs.readdir()之后的所有mp3文件,并从中提取id3标签。 console.log(images)产生[] 。 我无法理解如何处理id3js()的asynchronous性质。 什么是正确的方式来提取这些信息,并将其作为对这个http请求的响应来传递。