Tag: sails.js

Sails.js:如何在bootstrap中使用i18n

如何在Sails.js的bootstrap中使用i18n? 这里是控制器动作中的“res.i18n”,但是我没有find像sails.i18n这样的全局实例(已经初始化)。 我猜下面的代码应该在bootstrap.js中工作: i18n = require('i18n'), i18n.configure({ locales: sails.config.i18n.locales, directory: sails.config.appPath + sails.config.i18n.localesDirectory, defaultLocale: sails.config.i18n.defaultLocale, updateFiles: false, extension: '.json' }); __('Hello'); 但是可能有更好的办法吗?

节点js删除目录中的旧文件

我想删除一些目录中的文件达到一定的限制(例如,如果文件数量超过20删除文件) 如果可以执行任何自动化操作来删除这些文件,那就太好了。 详细:在我的情况下,有一个上传目录,我上传的图像。 对于每个新图像,都会创build一个目录,并将图像保存在目录中。 所以我想保留一些新创build或最近使用的目录,并在一定的限制之后删除其他目录(例如达到20个目录之后)。 在创build新图像时,它会检查限制,如果超出最大限制,它将删除未使用的目录。 注意:目录不是空的。 我怎样才能做到这一点使用Node.js 任何帮助将是可观的。

如果属性已定义,则从“水线”中的模型获取结果

我有一个不需要每个属性的模型。 我想要查询模型并返回属性定义的所有实例。 这是我认为代码应该看起来像,但它不起作用。 任何想法或链接到一些详细的文档? MyModel.find() .where({ "propertyThatMayExist" : { "!=" : undefined } }); 预先感谢一堆!

大多数中间件(如compress)不再与Express捆绑在一起

我刚刚安装了sails@v0.9.16,express@4.0.0,compression@1.0.1和compress@0.1.9(只是为了确保)。 但是我在sails lift时仍然有下面的错误 /Users/myuser/myproject/backend/node_modules/express/lib/express.js:89 throw new Error('Most middleware (like ' + name + ') is no longer bundle ^ Error: Most middleware (like compress) is no longer bundled with Express and must be installed separately. Please see https://github.com/senchalabs/connect#middleware. at Function.Object.defineProperty.get (/Users/myuser/myproject/backend/node_modules/express/lib/express.js:89:13) at Object.module.exports.express.customMiddleware (/Users/myuser/myproject/backend/config/passport.js:127:20) at Array.loadExpress [as 1] (/usr/local/lib/node_modules/sails/lib/express/index.js:162:25) at listener (/usr/local/lib/node_modules/sails/node_modules/async/lib/async.js:462:46) at /usr/local/lib/node_modules/sails/node_modules/async/lib/async.js:416:17 at […]

sails.js资产版本控制

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

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

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

如何在sails.js中维护多个API版本

有没有人有使用sails.js维护多个版本的API的想法? 想象一个简单的例子: // Request GET /api/v1/catVids?min_view_count=10000 // Response [{"video_title": "top cat fails"}, {"video_title": "funny-ass cats"}] 用户正在积极地消费API的v1版本,但现在已经改变了将破坏现有function的需求。 例如,属性名称更改。 所以现在我们需要使用一个不同的控制器来满足这个新行为的要求。 我想要做的是两个API共存,所以向后兼容性不会中断。 // Request GET /api/v2/catVids?minimum_view_count=10000 // Response [{"title": "top cat fails"}, {"title": "funny-ass cats"}] 但是,我不确定实现这个最好的方法。 我认为可以工作的一种方法是在sails应用程序中使用以下目录设置: api/ |– controllers/ |—- v1/ |—— CatController.js |—- v2/ |—— CatController.js |– models/ |—- v1/ |—— Cat.js |—- v2/ |—— Cat.js […]

航行js运行testing

我试图运行我的帆unit testing(使用摩卡和伊斯坦布尔) 运行时 grunt test 我得到的错误 1) "before all" hook 2) "after all" hook 0 passing (5s) 2 failing 1) "before all" hook: Error: timeout of 2000ms exceeded at null.<anonymous> (/vagrant/node_modules/mocha/lib/runnable.js:157:19) at Timer.listOnTimeout [as ontimeout] (timers.js:112:15) 2) "after all" hook: ReferenceError: sails is not defined 设置似乎没有find我的风帆,但是在做 which sails 我明白了 /usr/local/node/node-default/bin/sails 并运行sails lift工作正常 这是我的项目中的摩卡testing文件 //boostrap.test.js var […]

SailsJS水线与蓝鸟承诺

当使用水线ORM时,如果我想要使用蓝鸟许诺api这默认发货如何将处理返回到控制器。 以下是代码: module.exports = { //Authenticate auth: function (req, res) { user = req.allParams(); //Authenticate User.authenticate(user, function (response) { console.log(response); if (response == true) { res.send('Authenticated'); } else { res.send('Failed'); } }); } }; module.exports = { // Attributes // Authenticate a user authenticate: function (req, cb) { User.findOne({ username: req.username }) .then(function (user) { […]

当它不应该时,authentication返回“401(未授权)”

我第一次设置了身份validationfunction,并且在用户login后得到了一些意想不到的结果。一位同事给了我一个有效身份validation的应用程序来模拟我的应用程序,好像我所做的一切都是正确的。 我在前端使用AngularJS,SailsJS后端框架和PassportJS身份validation中间件。 我的源是(现在)公开存储…后端API在Github这里( API Github )和前端代码在这里( 前端Github ) 基本上发生的是用户 点击loginbutton,触发这个function login: function (credentials) { return baseAuth.customPOST(credentials, 'login').then(function (user) { $log.debug('User logged in: ', user); isAuthenticated = true; return user; }); }, 该customPOST的控制器逻辑是这样的 login: function (req, res, next) { passport.authenticate('local', function (err, user, info) { if (err) { return res.json(err); } else if (user) { req.logIn(user, […]