sails.js资产版本控制

我正在使用sails.js资产链接器。 我正在通过在其中附加一个资产版本来版本化我的资产,如下所示: assetfile.js?=<%= assetVersion %> 不幸的是,这是行不通的,因为js文件名正在被链接器取代! sails.js链接器是否支持这个工作? 还是我自己离开了咕噜文件?

将socket.io从0.9.x迁移到1.x,configurationRedisStore出现问题

所以我正在将我的节点应用程序从socket.io 0.9.x迁移到1.x,并且在configurationRedisStore时遇到了问题。 我在使用0.9.x时已经有了这个工作,但我无法弄清楚如何使用1.x工作。 该文档似乎只适用于0.9.x. 以下是他们的文档中的相关部分,我遵循并使用旧版本: var RedisStore = require('socket.io/lib/stores/redis') , redis = require('socket.io/node_modules/redis') , pub = redis.createClient() , sub = redis.createClient() , client = redis.createClient(); io.set('store', new RedisStore({ redisPub : pub , redisSub : sub , redisClient : client })); 从我可以告诉问题似乎是这个部分: var RedisStore = require('socket.io/lib/stores/redis') , redis = require('socket.io/node_modules/redis') 这些文件在socket.io模块中似乎不再存在。 另外,我一直在使用他们的迁移指南作为参考,但没有提到如何configurationRedisStore的具体变化。 任何帮助或想法将不胜感激。 谢谢!

在第一次解除Sails.js应用程序时加载数据(灯具)

我正在使用Sails.js 0.10 RC7。 当开发人员签出一个项目并运行它时,我想预先填充一些数据到数据库中。 这应该只在应用程序运行的第一次完成(或者,也许我们应该有新的数据添加到夹具时发生这种情况)。 我可以把数据放在config/bootstrap.js但据我了解,每次运行sails lift都会运行。 我可以这么做,写一些逻辑,但是如果已经有一个关于这个的惯例,那么使用它会很好。 只是要清楚,我并不是专指testing设备,而是假定在任何运行环境中都可以使用的一些数据。 任何人已经解决这个问题?

在Node.js / Express应用程序中testing环境

我刚刚开始使用Node,并且一直在跟随各种教程。 我创build了一个Express应用程序,并设置了Mongoose和Jasmine。 如何configuration我的规格,以便我可以: 创build模型,在每个规范之后自动清理它们 使用不同的数据库来创buildtesting对象(比如myapp_test) 以尽可能干的方式做到这一点,即不要为每个描述块的拆卸创build一个之前/之后的块 ?

如何在存储后从MongoDB中检索二进制文件?

我存储的文件类似于以下内容: var pdfBinary = fs.readFileSync("myfile.pdf"); var invoice = {}; invoice.pdf = new mongo.Binary(pdfBinary); 然后我把上面的文件插入到MongoDB中。 然后我尝试检索它类似于以下内容: collection.findOne({}, function(err, retrievedPDF) { fs.writeFile("myretrieved.pdf", retrievedPDF.pdf.buffer, function(err) { …. }); }); 它作为一个零字节文件出来。 如果我console.log存储的文件,它看起来像这样: { pdf: { _bsontype: 'Binary', sub_type: 0, position: 0, buffer: <Buffer > }, _id: 53af545681a59758611937d7 } 我已经通过了文档,我发现它有点混乱。 我做错了,我无法存储/检索文件?

Node.js使用csurf有条件地使用express 4

我尝试在我的快速应用程序的几条路线上使用csurf。 这是方法: var express = require('express'); var session = require('express-session'); var csrf = require('csurf'); // some more stuff var csrfExclusion = ['/myApi','/unsecure']; var app = express(); var conditionalCSRF = function (req, res, next) { if (csrfExclusion.indexOf(req.path) !== -1){ next(); } else{ csrf(); } }); app.use(conditionalCSRF); 甚至尝试过: var conditionalCSRF = function (req, res, next) { if […]

Google OAuth2:缺less必需的参数:grant_type

我已经尝试了一切,阅读每个StackOverflowpost在这个问题上,但我仍然无法得到它的工作。 有趣的是,通过DHC REST API客户端(Google Chrome应用程序)发送POST请求时,我能够获得200 OK响应。 var url = 'https://accounts.google.com/o/oauth2/token'; var params = querystring.stringify({ grant_type: 'authorization_code', code: req.body.code, client_id: req.body.clientId, client_secret: 'HIDDEN', redirect_uri: req.body.redirectUri }); params = querystring.unescape(params); // doesn't work with or without string escaping request.post(url + '?' + params, function(error, response, body) { console.log(body); });

如何使用NPM更新开发依赖关系?

以下是我的package.json的一部分: { … "devDependencies": { "gulp": "~3.8", … }, … } 我正在运行以下命令: gulp –version CLI version 3.8.7 Local version 3.8.6 npm update gulp –version CLI version 3.8.7 Local version 3.8.6 rm -Rf ./node_modules/ npm install gulp –version CLI version 3.8.7 Local version 3.8.7 npm update命令不起作用。 只有在手动删除node_modules目录并运行npm install development package后,才会更新。 这是什么原因? 是否有可能实际更新开发包没有这样的麻烦?

即使当我的路由到不同的文件时,express也会提供index.html

我有一个公共目录与文件index.html和index-08.html在其中。 用下面的代码,我期望index-08.html被服务。 但相反, index.html获取与localhost:3000的浏览器请求 app.use(express.static(path.join(__dirname, 'public'))); app.get('/', function(req, res) { res.sendFile('public/index-08.html'); }); 但是,如果我将index.html的文件名更改为其他名称,则说not-index.html ,然后正确的文件index-08.html得到服务。 你能帮我理解为什么会发生这种情况吗?

在使用节点JS的DynamoDB查询中recursion提取所有项目

这可能是一个比DynamoDB特定问题更多的JS / Async问题 – 我想用Amazon的DynamoDB中的散列键获取表中的所有项目。 表中也有Range键。 我正在使用一个NodeJS库,它是AWS DynamoDB REST API的包装器。 – 节点 – DynamoDB DynamoDB只会为每个查询返回1 MB的结果。 要提取结果提醒,它包括lastEvaluatedKey 。 我们可以在另一个查询中包含这个来获取另一个1 MB值的结果,等等… 我在编写recursionasynchronous函数时遇到了困难,它应该按顺序打到服务,直到我可以得到所有结果为止。 (表格永远不会超过10 MB用于我的用例,没有失控查询的机会) 一些伪代码的插图: ddb.query('products', primarykey, {}, function(err,result){ //check err if(result && result.lastEvaluatedKey){ //run the query again var tempSet = result.items; //temporarily store result.items so we can continue and fetch remaining items. } else{ var […]