Articles of sails.js

Sails js:服务variables初始化

下面的代码仅供参考。 假设我的服务名称incremented ,并且具有incrementCounter函数 var counter = 0; module.exports = { incrementCounter: function (req, callback) { counter++; callback(null, counter); } } 正如你所看到的, var counter = 0是在函数之外定义的,所以它可以在全部服务函数内全局访问。 现在,如果我并行调用服务两次,它给第一个电话是正确的,但第二个电话是给我2 。 当这个服务被调用时,variablescounter不应该重新初始化为0吗? incremented.incrementCounter(req, function(error, response){ //response = 1 }); incremented.incrementCounter(req, function(error, response){ //response = 2 });

在sails js中跨视图共享一个通用控制器

我想在我的routes.js文件中进行以下设置 '/first': { controller: 'PageController', action: 'viewPage', page: 'first' }, '/another': { controller: 'PageController', action: 'viewPage', page: 'another' }, '/last': { controller: 'PageController', action: 'viewPage', page: 'last' }, 所以有一组通用的页面可以共享同一个控制器 – 不需要这些控制器都拥有唯一的控制器,因为他们可以做同样的事情,只需加载不同的视图并从依赖于模型的模型中加载不同的数据请求页面。 因此,我需要从路由提供者传递一个类似'page'的variables给PageController ,然后我可以在PageController.viewPage 。 (我意识到在上面的路线文件中的'page'variables是无效的,这只是为了显示我想达到什么。) 我怎么能做到这样的事情?

根据客户端POST表单的开关切换套接字

在我们的数据处理API控制器中,根据客户端填写或未填写 POST FORM的POST FIELDS,我们有CASE SWITCH套接字。 问题是:什么是最简单的方法来确定正确的CASE根据张贴字段。 假设我们在客户端POST FORM上有六个不同的字段 计算总共64个的所有可能性 在Sails中,我们正在寻找最有效的方式来标记每个组合 ,以便切换大小写,然后在API控制器中路由每个组合 。

如何在Sails.js中包含npm模块的服务?

我有一些公用事业服务,我想打包成一个节点模块包含在多个Sails.js项目。 我知道包含在api\services\目录中的任何文件都会自动包含在全局范围中。 如何在节点模块中包含全局范围的服务,而不是位于services文件夹中? 我不想将它们与咕噜声或任何forms的副本链接起来。 我实际上已经为我的项目禁用了咕噜声。

sails生成<something>:“生成”文档在哪里?

sails generate controller <name>和model和api等。 其他人是什么? 有什么select? 什么是命令行选项? 在这里插入强制性的“我已经websearched高低”,但我可以拿出的唯一的东西是个人发电机在各种忽略状态的github条目。 所以,抽象地说, generate命令的文档在哪里?

使用SailsJs时301redirect

情况:升级基本HTML的旧网站以使用SailsJS。 旧网站有.html扩展名,并且在search引擎中排名很好。 因此,我想将所有传入的请求从旧URL(.html扩展名)路由到通过sails(无扩展名)生成的新结果。 最好的方法似乎是301redirect,但我不确定是使用基于SailsJS的服务器来实现这一点的最佳实践。 www.blah.com/blah2.xml => www.blah.com/blah2。

奇怪的“超时”,当试图从Sails.js应用程序执行MongoDB查询

当我在本地主机环境中启动我的Sails应用程序并将其加载到浏览器中时,视图将呈现正常,对另一个(非mongo)资源的asynchronous请求正常工作,但是任何asynchronous请求返回到从Mongo中获取数据的Sails只在应用程序启动的前几个时刻。 只要我在最初的几个时刻收到一个请求,我就可以尽可能多地提出请求。 除此之外,如果我等了整整两三秒钟,通话就会一直停顿。 以下是使用native的查询示例: Item.native(function (error, collection) { collection.find().sort({'count': 1}).limit(parseInt(count)).toArray(function(error, data) { console.log(error, data); return res.send(data); }); }); 另一个例子使用水线: Item.find().sort('count ASC').limit(count).exec(function (error, data) { console.log(error, data); return res.send(data); }); 当它停滞时,callback从不被调用,所以没有错误被logging到控制台。 我尝试了一下代码,看起来逻辑stream只是从内部的_dispatch()函数_dispatch()到一些bind函数,并且来回运行。 我可以validation从Mongo控制台查询工作正常,我种植我的数据库使用水线在应用程序启动,这也工作正常。 我也可以访问收集罚款(使用native执行第一个callback)。 我觉得我开始用尽想法,所以任何帮助都会很棒。 谢谢参观。 这是我正在运行的参考: 帆:0.11.0 mongo:2.6.10 sails-mongo:0.11.0

Sails.js 0.11和护照:“Missing Credentials”错误

我已经按照这个网站的教程: http : //iliketomatoes.com/implement-passport-js-authentication-with-sails-js-0-10-2/ registry单工作正常,一切都保存到我的数据库(MongoDB),但是当我想login时,我有missing credentials错误: { "message": "Missing credentials", "user": false } 这很奇怪,我已经克隆了https://github.com/iliketomatoes/passport_with_sails , sails lift它,一切工作正常。 我已经将所有api源文件和configuration复制到我的项目中。 只有意见是不同的,但我敢肯定,我使用的input名称: email和password 。 而我仍然有这个错误。 我正在使用MongoDB作为数据库,我切换到本地磁盘(如在这个回购),仍然是同样的问题。 我已经将package.json文件中的npm模块的版本更改为repo版本,并且仍然是相同的错误。 它很奇怪。 另外我不得不提到POST请求包含email和password字段。 我已经仔细检查过了 有人知道什么会导致这个问题? 编辑:我的login.ejs视图看起来像这样: <div class="row"> <div id="content" class="col-sm-12 full"> <div class="row"> <div class="login-box"> <div class="header"> Login to JSCS Dashboard </div> <form class="form-horizontal login" action="/login" method="POST"> <fieldset class="col-sm-12"> <div class="form-group"> […]

在嵌套的asynchronous模块函数中,“this”将如何正常运行?

我使用Sails.js框架和伟大的模型的function,我也使用它作为其依赖的async版本。 所以,为了解释一个实际的场景: 得到一个艺术家所唱的歌曲的所有评论 。 我应该首先查询歌曲,然后查询评论。 这就是为什么我使用async模块,特别是它的waterfallfunction。 但是,由于所有这些代码都放在一个Model文件中,而this文件是指模型本身,所以我有一个很大的疑问: 即使存在asynchronousfunction,这是否也会引用模型? 这是我正在做的一个代码示例: module.exports = { connection: 'seasonDB', attributes: { reachesMaxFavoriteTeam: function (team) { var results []; async.waterfall([ // Get favorite team function (cb) { var userTeam = this.userTeam; UserTeam.findOne({_id: userTeam}, function (err, foundUserTeam) { if (err) cb(err,null); var user = foundUserTeam.user; User.find({_id: user}, {_id:false, fanOf: true}, function (err, […]

每个模型对象的dynamic表规范

我想找出一种方法来创builddynamic模型types,存储在各自的集合(对于一个CMS)。 我希望能够定义一个新的“内容types”并将其存储在自己的集合中,并使用标准的Sails模型来控制每个模型。 我想在保存之前和提取之前设置tableName ,但是没有成功。 所以像这样的东西: (Model) Content: – id – createdDate – contentType – {n…fields} (Model) ContentType: – id – collection (to which each content object would store) – name – fields – field{n} – type – name – required – … 我只是不知道如何使这在sails.js / waterline发生