Tag: sails.js

了解express.js / sail.js控制器范围内的下一个中间件

我使用的是build立在express.js之上的sails.js。 在我的routes.js中,我定义了如下的路由 '/account/login': { controller : 'Session', action : 'logInAPI' }, 而我的会议控制器是这样的 logInAPI: function(req, res, next) { if (!req.param('email') || !req.param('password')) { var usernamePasswordRequiredError = [ 'You must enter a username and a password.' ] req.session.flash = { err: usernamePasswordRequiredError } return next(); } else{// Log in user}; } 我想知道什么时候我打电话在哪里指着中间衣服。 如果写回报将会发生什么; 而不是返回next();

在SailsJS中创build条目后发送电子邮件

我想创build一个用户后发送一个电子邮件从帆,但我不知道什么callback使用,似乎无法在文档中find任何东西。 我认为应该有一些可以附加到模型的function,如下所示: afterCreate: function(user) { // do stuff with email here } 但是这对我不起作用

SailsJS:在beforeCreate或afterCreate中访问res.render

我需要访问res.render函数为了呈现一个html模板,但似乎res object没有传递给该函数。 任何想法我怎么能做到这一点? 据我所知这是什么afterCreate得到: afterCreate: function(attrs, next) { // attrs is basically just the model next(); }

表单在inputtypes=文件中没有select文件提交时正在计时

有一个简单的forms,如下面的js小提琴http://jsfiddle.net/UdugW/我张贴一些表单数据到我的node.js应用程序(基于sails.js)。 这是来自product型号的控制器function之一: image_upload: function(req, res) { if (req.method.toLowerCase() == 'post') { console.log("request: " + util.inspect(req.body)); if( req.files && req.files.product_image){ fs.readFile(req.files.product_image.path, function (err, data) { var imageName = req.files.product_image.name; if(!imageName){ console.log("There was an error with image upload : " + util.index(req.files.product_image)); res.redirect("/product/new_product"); res.end(); } else { var newPath = UPLOAD_PATH + imageName; /// write file to […]

在sails.js的视图文件中处理会话variables

我想在我的视图文件中使用会话variables。 我的控制器代码是这样的 User.find() .where({ username: username }) .where({ password: password }) .exec(function(err, users) { if(users.length == 1){ req.session.user_detail = users; res.redirect('/member'); }else{ console.log(err); } }); 我想在我的member.ejs文件中使用req.session.user_detail。

Sails.js:添加自定义实例方法结果作为模型属性

我对JavaScript编程相对来说比较新,所以这个问题可能有一个小小的解决scheme。 使用Sails.js,我创build了这个模型。 module.exports = { tableName: 'FOO_TABLE', attributes: { FOO: 'string', BAR: 'number', BAR2: function() { return this.BAR + 1; } }, }; 然后,在一个控制器中,我得到所有的实例: FOO_MODEL.find().exec(function(err, FOOS) { return res.view({data: JSON.stringify(FOOS)}); }); 问题是,在FOOS内部,这不是BAR2方法。 我已经使用了这个解决scheme(使用Underscore.js): FOOS = _.map(FOOS, function(FOO){ FOO.BAR2 = FOO.BAR2(); return FOO; }); 但是我不认为它是有效的/聪明的,因为我想我可能会再次发现这个问题。 你会怎么做? 谢谢

NodeJS如何在控制器中组织callback

我是新来NodeJS和来自PHP环境我想弄清楚如何使用多个callback。 我确实了解callback的基础知识,我认为在编写模块时确实很灵敏。 我的问题是什么时候使用这些模块如何组织所有的callback。 下面是我的实现一个请求重置密码控制器方法(我正在使用SailsJS)。 这是我的代码的初稿。 主要是testing一个组织callback的方法。 你们如何看待这种结构? 有没有更好的办法呢? var _ = require('lodash'); var moment = require('moment'); var mailer = require("../../services/Mailer"); var crypto = require('../../services/crypto'); var forms = require("forms"), fields = forms.fields, validators = forms.validators; module.exports = { // Request reset user password: submit form and send email request_process : function(req, res, next) { var form […]

风帆视图结构

您好,我创build了一个完整的API使用的风帆应用程序。 它没有一个视图文件,现在我有一个HTML,CSS,JS目录结构,我想显示为我的应用程序的首页。 我的HTML目录结构如下。 +-ApiDocumentationApp | -script | -css | -images | –index.html 现在我不想使用任何模板引擎如玉或ejs。 另外我不想把目录结构改成sailsjs,资产和查看系统。 有什么办法可以在sailsjs里面做到吗?

如何引用与Sails 0.10.x的一对多关系的相关模型

我正在使用Sails.js版本0.10.x,刚刚开始尝试它的associactions东西。 在我的情况下,我有一个拥有多个文档的用户。 所以在/api/models/User.js我有: module.exports = { // snipped out bcrypt stuff etc attributes: { email: { type: 'string', unique: true, index: true, required: true }, documents: { collection: 'document', via: 'owner' }, } }; 并在/api/models/Document.js我有: module.exports = { attributes: { name: 'string', owner: { model: 'user' } } }; 在我的DocumentController我有以下几点: fileData = { name: file.name, […]

sailsjs的CSRF问题

我在sails.js的csrf上遇到了一些麻烦,我激活它,并创build像sailsjs文档中的隐藏字段,但是当我提交表单时,我总是得到这个响应: Error: Forbidden at Object.exports.error (/Users/matheus/Development/javascript/activity_overlord/node_modules/sails/node_modules/express/node_modules/connect/lib/utils.js:62:13) at createToken (/Users/matheus/Development/javascript/activity_overlord/node_modules/sails/node_modules/express/node_modules/connect/lib/middleware/csrf.js:82:55) at /Users/matheus/Development/javascript/activity_overlord/node_modules/sails/node_modules/express/node_modules/connect/lib/middleware/csrf.js:48:24 at routes.before./* (/Users/matheus/Development/javascript/activity_overlord/node_modules/sails/lib/hooks/csrf/index.js:26:28) at _bind.enhancedFn (/Users/matheus/Development/javascript/activity_overlord/node_modules/sails/lib/router/bind.js:375:4) at callbacks (/Users/matheus/Development/javascript/activity_overlord/node_modules/sails/node_modules/express/lib/router/index.js:164:37) at param (/Users/matheus/Development/javascript/activity_overlord/node_modules/sails/node_modules/express/lib/router/index.js:138:11) at pass (/Users/matheus/Development/javascript/activity_overlord/node_modules/sails/node_modules/express/lib/router/index.js:145:5) at nextRoute (/Users/matheus/Development/javascript/activity_overlord/node_modules/sails/node_modules/express/lib/router/index.js:100:7) at callbacks (/Users/matheus/Development/javascript/activity_overlord/node_modules/sails/node_modules/express/lib/router/index.js:167:11) 有人可以帮我find解决办法? 我认为这是一件简单的事情,我只是不知道这是什么“简单的事情”