Articles of sails.js

大多数中间件(如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, […]

sails.js有一个很好的MSSQL / SQL Server适配器吗?

我想说,我真的很喜欢sails.js为一个简单的MVC框架,但觉得它缺乏其文档和API参考。 我search了所有的尝试,find一个好的mssql(SQL服务器)Sails.js适配器的任何信息,但无法find一个。 我希望有人遇到过,并可以推荐它。 我也考虑build立一个自定义的适配器,但发现文档不是有帮助的。 任何帮助这个话题将不胜感激。 谢谢。

帆中的多对多关系

在我的帆应用程序(真正新手帆),我有3个模型: – 用户(电子邮件,密码) – 团体(姓名) – 项目(名称) 我希望组模型充当用户和项目之间的多对多关系,如何实现? 我正在使用帆0.9.4,我已经读了关于关系的问题#124,但不真正了解,如果这可以应用到现有的模型(也包含自己的属性上的itemId和userId)。

自定义视图/操作/控制器不能在Sails JS中工作

我一定是做错了,但我看不到…基本上,如果我通过sails generate controller products创build一个控制器/模型,并在文件/controllers/ProductsController我添加一些variables的索引操作,如: index: function(req, res) { return res.view({ myOne: 'World?', myvar: 'hello???', title: 'Yeap' }) }, 当我检查本地主机:1337 / products肯定足够的variables打印在模板中。 请注意,我没有添加自定义视图,我的模板文件位于views/products/index.jade (我使用的是Jade而不是EJS)。 但是,如果我在/config/routes创build自定义视图,例如: '/custom': { view: 'custom', controller: 'ProductsController', action: 'customAction' } 并在我的ProductsController中,我有一个非常类似的行动,如前所述: customAction: function(req, res) { return res.view({ myOne: 'Hello?', myvar: 'World???', title: 'Yeap' }) }, variables不会打印在我的模板中。 模板被称为好,所以是控制器和行动(所以它似乎)。 任何人都可以解释我做错了什么?