Tag: devise模式

儿童杂项模式的数据库devise

我想知道保持数据库尽可能整洁的最佳做法。 数据库是由express.js / node访问的postgresql。 这是一个孩子应用程序,我正在工作,它有以下架构: CHILDREN id name points rate created_at updated_at user_id TASKS id description value days (boolean array – eg. [0,0,0,0,0,0,0]) periods (boolean array – eg. [0,0]) created_at updated_at user_id FINISHED TASKS id task_id child_id completed (boolean) created_at updated_at period (boolean) day (int (0-6)) 对于每个完成的任务,在数据库中创build一行。 只有400个孩子在那里做家务,每天已经有大约800行被添加到FINISHED TASKS表格。 我有两个问题: 是否有一个更有效的方式来存储完成的FINISHED TASKS ,每个孩子或类似的一整天? 随着规模,我将最终每天可能成千上万的行 – […]

如何编写特殊testing用例的可testing代码

我有一个asynchronousreadFile(path,callback)函数。 它第一次读取文件时,会从文件系统中读取文件。 它会将内容保存到内存中。 之后当相同的文件被读取时,它只是从内存中返回内容而不是再次打开文件系统。 我遇到的问题是如何testing这种机制在testing套件中的工作,因为方法调用无法知道内容是从文件系统还是内存中返回。 我如何实现readFile(),所以它的cachingfunction是可testing的?

根据位置和指定的半径获取数据

场景:我有一个大的数据集,每个条目包含一个位置(x,y – 坐标)。 我希望能够从这个数据集中请求这个数据集中的每个条目,并且将其作为一个数组返回。 人们如何去执行这样的事情呢? 有没有推荐的模式或框架? 我以前只使用关系或简单的键值types的数据。

对Sequelize协会感到困惑

我刚刚发现Sequelize是一个很好的ORM框架,可以在我的节点+ MySQL webapp中使用。 但是当我devise我的数据库表时,我对Sequelize关联感到困惑。 只要想一想,webapp中的用户和系统通知就是一个非常简单的例子: 该网站有许多用户 该网站会向一些或每个用户发送通知,并且相同的通知只保存为一条logging 用户可以知道他/她收到的任何通知是否被读取(通过读取date) 然后我devise了3个表格: User : id , name Notification : id , title , content , sendAt Notify : id , UserId (作为接收者), NotificationId , readAt 我可以简单地通过Sequelize定义User和Notification模型。 但是我只是不知道如何使用关联使Notify与这两个表相关,通过外键UserId和NotificationId 。 我试图使用这样的hasOne关联: Notify.hasOne(User); Notify.hasOne(Notification); 然后在User和Notification表中都有一个NotifyId列。 这不是我的期望。 也许我认为使用关联的方式是错误的,所以我想知道如何正确使用它? 另外,如果我想以JSON的forms获得结果: [ {id: 123, user: [Object some user], notification: [Object some notification], readAt: null}, […]

如何确定一个asynchronous调用是否是最后一个

使用asynchronous语言(在我的情况下是node.js ),我最终会得到一个二维循环和一个response : firstArray.forEach(function(first){ sencondArray[first].forEach(function(second){ doStuff(function callback(resultSum){ if(isLastCallback(this)) response.send(resultSum); }); }); }); 我的第一个方法是获得isLastCallback的正确结果,使用提供的计数器i isLastCallback迭代,但结果是一团糟。 检测当前callback是否是最后一个callback的常用方法是什么?

代码模式相当于链接如果/ elseif在阻塞条件在节点JS?

我想在Node.JS中写入以下同步代码的等价物: function(param) { if(condition1(param)) {f(param);} else if(condition2(param)){g(param);} else if(condition3(param)){h(param);} … } 在条件的validation可能做一些数据库,文件系统,甚至HTTP I / O; 所以不应该在这样的同步代码中运行。 简单但肮脏的解决scheme:可以像回答这个问题一样链接callback如何在Node JS中编写一个非阻塞的if语句? 但是,当条件数量很多时,很容易变得难以理解和难以修改(例如改变条件的顺序)。 有没有一个很好的模式,可以用来保持这样的代码整洁?

承诺的节点模式

我有一个节点问题。 我想调用一个数据访问对象,可能还有其他的内容,一旦完成渲染一个Jade模板 就像是 : provider1.getData(args, function(error, results) { /* do something with each result element */ for(int i = 0l i < results.length; i++) { provider2.getData(args, function(error, items) { store.push(items); }); } }); /* Here I want to ensure that the above operations are complete */ result.render( …. , { data:store }); 基本上,我想确保数据检索完成之前,我与数据呈现模板。 目前,渲染发生时,variables存储不会被填充。 我看过看起来很有希望的承诺。 […]

使用rabbitmq与multithreading之间的差异

如果我错了,请纠正我,但是,我正在Ruby中开发一段时间,其中最明显的缺点之一是缺lessmultithreading。 最近我一直在探索节点js,特别是它的非阻塞IO“function”。 我的问题是: 为什么要使用单线程语言并使用rabbitmq来asynchronous实现,如果只能使用像js这样的multithreading语言,那么可以同时触发1000个请求并同时完成它们? 节点js是否有其他multithreading语言的创新? 我想我真正要问的是:节点js非阻塞IO和multithreading之间有区别吗?

什么是ES6中的子模块?

假设我有一个名为a.js的ES6模块。 a.js模块导入b.js和c.js模块。 同样, b.js导入d.js和c.js导入e.js 现在我想知道哪些是子模块和超级模块。 我觉得b.js和c.js是c.js的子模块。 但我不确定。 真的很困惑。 请帮忙。 提前致谢。

节点JS应用程序更好的devise和分离

我用express创build了一个节点应用程序。 我尝试将下面的图层分开,这将使我能够使用unit testing来testing应用程序。 问题是,我不知道如何调用将在post / get / delete应用程序中停止的router.js文件。 server.js文件如下所示 http = require('http'), app = require('./app')(), http.createServer(app).listen(app.get('port'), function (err) { console.log('Express server listening on port ' + app.get('port')); }); 这是app.js文件 var express = require('express'), logger = require('morgan'), bodyParser = require('body-parser'), routesApp = require('./ro/route'); module.exports = function () { var app = express(); app.set('port', process.env.PORT || 3005); […]