标签: sails-mongo

Sails.js和Waterline ORM取消设置关键MongoDB

使用Waterline ORM在MongoDB中取消设置密钥的方法是什么?

请考虑以下文档:

{
    name : 'brian',
    age : 29
}
Run Code Online (Sandbox Code Playgroud)

获得用户是没有问题的:

var users = Users.findOne({ name : 'brian' }).exec(cb);
Run Code Online (Sandbox Code Playgroud)

我希望年龄能够消失.我已尝试以下方法来完成此任务:

user.age = undefined;
user.save();

user.age = null;
user.save();

delete user.age;
user.save();
Run Code Online (Sandbox Code Playgroud)

似乎没有工作.#1将其设置为null,#2将其设置为null,#3保留原始值.

谢谢.

sails.js waterline sails-mongo

5
推荐指数
1
解决办法
1881
查看次数

如何在 Waterline/Sails.js 模型中创建“计算”字段?

这是我的 Users.model:

module.exports = {

    attributes: {

        name: {
            type: 'string',
            required: true,
            minLength: 3,
            maxLength: 30
        },

        username: {
            type: 'string',
            required: true,
        },

        toJSON: function() {
          var obj = this.toObject();
          obj.link = sails.config.globals.baseUrl + sails.config.routes.user + obj.id;
          return obj;
        }
    }
  };
Run Code Online (Sandbox Code Playgroud)

我想要的是使用一些在模型中“预”计算的属性。我的解决方案是在 toJSON() 函数中注入 attr,但在视图中我必须使用:

<%= users.toJSON().link %> 
Run Code Online (Sandbox Code Playgroud)

有没有办法为用户创建一个属性或一些方法?喜欢:

module.exports = {

       attributes: {

        name: {
            type: 'string',
            required: true,
            minLength: 3,
            maxLength: 30
        },
        myPersonalAttribute: function(){
           return "Value"   
        }
}
Run Code Online (Sandbox Code Playgroud)

javascript sails.js waterline sails-mongo

5
推荐指数
1
解决办法
2810
查看次数

使用MongoDB基于该记录的值获取不同的记录

我有餐厅记录的集合.这个集合中的一些餐馆属于某个团体(连锁型餐厅,例如KfC等),而其他没有任何团体(个别餐厅,不属于任何连锁店).

例如:

餐厅系列

{_id:"1",title:"rest1",address:"somethingx",chain_id:"123"},
{_id:"2",title:"rest2",address:"somethingx",chain_id:"123"},
{_id:"3",title:"rest3",address:"somethingy",chain_id:"0"},
{_id:"4",title:"rest4",address:"somethingx",chain_id:"0"} 
Run Code Online (Sandbox Code Playgroud)

连锁收藏:

{_id:"123",chain_name:"VSWEETS",address_deatils:[
                                          {restID:"",address:"somethingx"},
                                          {restID:"",address:"somethingx"}
                                         ]
}

{_id:"456",chain_name:"KFC",address_deatils:[]}
Run Code Online (Sandbox Code Playgroud)

我需要用类似的chain_id获取不同的餐厅,即如果它属于某个链条,则只有单个餐厅应该来(chain_id!= 0)

mongodb nosql sails.js sails-mongo

5
推荐指数
1
解决办法
109
查看次数

如何防止MP3被下载?

我正计划在交付的最后阶段建立一个在线音乐网站.MP3音频文件可通过浏览器检查器(音频文件的绝对路径)公开下载.如何保护它们不被下载,但仍然可以在浏览器中流式传输?

是否有任何高级加密策略可以阻止它们被下载?

使用的技术:Sails.JS上的Angular.JS,Node.JS.

请向我推荐一些解决方案.提前致谢.

audio-player node.js angularjs sails.js sails-mongo

5
推荐指数
0
解决办法
531
查看次数

Sails JS - Waterline ORM - 仅查询日期,而不是时间

希望查询日期人遇到过这个?

示例代码:

    ////MODEL
    module.exports = {
      attributes: {
        date: {
            type: 'date',
            required: true
        }    
      }
    };

    ////CONTROLLER
    var today = moment().toISOString();

    var queryObj = { date: today };
    var newDay = { date: today };

    Day.findOrCreate(queryObj, newDay).exec(function(err, day) {            
        console.log(day)
    });
Run Code Online (Sandbox Code Playgroud)

显然,这会在每次刷新时创建一条新记录,因为iso字符串将随着每秒的变化而变化.

谢谢您的帮助!

sails.js waterline sails-mongo

5
推荐指数
1
解决办法
4370
查看次数

如何从sails-mongo原生结果中正确实例化水线模型对象?

我在一个项目上使用SailsJS,我需要使用native()某些查询.我遇到的问题是我找不到从mongo集合find结果中实例化Waterline Model Object的正确方法.我一直在搜索有关此内容的信息,我发现的唯一内容如下:

var instance = new Model._model(mongo_result_item);
Run Code Online (Sandbox Code Playgroud)

这应该可以正常工作,但是当我这样做时instance.save(function(err, ins){});,由于"_id"字段,模型会抛出错误,应该是"id".

我已经看了sails-mongo代码,我发现对于"find"方法,他们这样做:

// Run Normal Query on collection
collection.find(where, query.select, queryOptions).toArray(function(err, docs) {
    if(err) return cb(err);
    cb(null, utils.normalizeResults(docs, self.schema));
});
Run Code Online (Sandbox Code Playgroud)

所以normalizeResults用"_id"属性和其他东西来做神奇的事.

我现在这样做的方式是要求sails-mongo utils.js文件可以访问此方法.

完整样本:

var mongoUtils = require('sails-mongo/lib/utils.js');

SampleModel.native(function(nativeErr, collection){

    collection.find({ 'field' : value }).toArray(function(collectionErr, results){
        if (!results || results.length == 0) return res.restfullInvalidFieldValue({ msg : 'INVALID_VALUE' });

        var norm_results = mongoUtils.normalizeResults(results);
        var instance = new SampleModel._model(norm_results[0]);

    });

});
Run Code Online (Sandbox Code Playgroud)

有没有更好/正确的方法来实现这一目标?

我需要进行本机搜索,因为我发现使用字符串的Waterline find()方法存在问题,其中搜索应区分大小写.模型上的每个字符串字段都用作以下形式的正则表达式匹配:/ ^ {string} $/i …

instantiation case-sensitive sails.js waterline sails-mongo

5
推荐指数
1
解决办法
464
查看次数

节点C:\ Users \ XXXXXXXX \ AppData \ Roaming \ npm \ node_modules \ sails \ bin \ sails.js module.js:473 throw err;

我在Windows 10上npm安装Sails.js之后,无法识别“ sails”命令。

有人可以提示我在PATH变量中使用哪些值吗?据我了解,它是运行sails.js文件的Node.exe。但是,如果我尝试在cmd中调整“ node sails.js”命令,它会识别出该命令,但找不到某些依赖项。

在我的Windows 7机器上,所有东西都已安装并运行正常

selenium npm sails.js sails-mongo selenium-extent-report

5
推荐指数
1
解决办法
133
查看次数

无法在layout.ejs(sails.js)中添加脚本

我想在layout.ejs中添加一个route.js文件.

<!DOCTYPE html>
<html ng-app="scratchpad">
  <head>
    <title>Scratchpad</title>

    <!-- Viewport mobile tag for sensible mobile support -->
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">


    <!--
        Stylesheets and Preprocessors
        ==============================

        You can always bring in CSS files manually with `<link>` tags, or asynchronously
        using a solution like AMD (RequireJS).  Or, if you like, you can take advantage
        of Sails' conventional asset pipeline (boilerplate Gruntfile).

        By default, stylesheets from your `assets/styles` folder are included
        here automatically (between STYLES and STYLES END). Both CSS (.css) and …
Run Code Online (Sandbox Code Playgroud)

javascript sails.js sails-mongo sails.io.js

4
推荐指数
1
解决办法
2112
查看次数

部署App Sails js Heroku | 应用程序错误

我运行我的应用程序时出错.

应用程序错误.应用程序中发生错误,无法提供您的页面.请稍后重试.

如果您是应用程序所有者,请检查日志以获取详细信息.

Heroku日志:

   May 05 08:17:00 game  app/web.1:  > node app.js 
May 05 08:17:04 game  app/web.1:  error: Error: Failed to connect to MongoDB.  Are you sure your configured Mongo instance is running? 
May 05 08:17:04 game  app/web.1:   Error details: 
May 05 08:17:04 game  app/web.1:  { [MongoError: connect ECONNREFUSED] name: 'MongoError', message: 'connect ECONNREFUSED' } 
May 05 08:17:04 game  app/web.1:      at _createError (/app/node_modules/sails-mongo/lib/adapter.js:101:23) 
May 05 08:17:04 game  app/web.1:      at /app/node_modules/sails-mongo/lib/adapter.js:104:13 
May 05 08:17:04 game  app/web.1:      at /app/node_modules/sails-mongo/lib/connection.js:25:20 
May 05 08:17:04 …
Run Code Online (Sandbox Code Playgroud)

heroku node.js mlab sails.js sails-mongo

4
推荐指数
1
解决办法
1321
查看次数

如何在sails-mongo中使用自动增量

我只是在玩sailsjs的概念然后我才知道如果我们使用mongodb作为我们的数据库,我们就不能在风帆中使用自动增量.即使对于非主键属性,我也无法使用自动增量.对于不是主键的属性,是否有任何特殊方法可以使用自动增量操作?提前致谢

sails.js sails-mongo

4
推荐指数
2
解决办法
3711
查看次数