小编jak*_*lla的帖子

StrongLoop Loopback:如何自定义HTTP响应代码和标头

我正在寻找一种方法来自定义StrongLoop LoopBack HTTP响应代码和标头.

我想遵守一些关于REST API的公司业务规则.

对于JSON中描述的模型,典型情况是让HTTP响应POST请求,使用代码201 +标头Content-Location(而不是没有Content-Location标头的loopback的默认响应代码200).

是否可以使用LoopBack来做到这一点?

http-status-codes http-headers strongloop loopbackjs

7
推荐指数
1
解决办法
6067
查看次数

使用Grunt运行时指定QUnit模块

我正在使用Grunt,PhantomJS和"watch"插件在我开发时运行我的QUnit测试(与CI分开).我希望能够专注于特定的QUnit模块,同时我正在处理该模块测试所关注的代码.在浏览器中运行QUnit时,我可以指定要运行的模块(与所有测试相对).

所以问题是,我可以告诉Grunt qunit任务只运行某个模块吗?我正在考虑命令行参数,以便我不必更改我的Gruntfile,例如:

~$ grunt qunit --module="test this stuff, test that stuff"
Run Code Online (Sandbox Code Playgroud)

UPDATE

要清楚,我想要运行的是使用QUnit module()方法在测试套件中创建的模块:

module( "group a" );
test( "a basic test example", function() {
    ok( true, "this test is fine" );
});
test( "a basic test example 2", function() {
    ok( true, "this test is fine" );
});

module( "group b" );
test( "a basic test example 3", function() {
    ok( true, "this test is fine" );
});
test( "a basic test example 4", function() {
    ok( …
Run Code Online (Sandbox Code Playgroud)

testing qunit gruntjs

6
推荐指数
1
解决办法
321
查看次数

环回多租户数据库交换

我想在我的loopback应用程序中实现多租户.现在,我正在尝试使用中间件重新定义我的数据源,以便根据请求的域为每个请求指向我的mongodb服务器上的不同数据库.代码运行,但它似乎并没有实际更改数据源.相反,它总是使用我的datasources.json中定义的那个.

现在,这就是我在做的事情.我的所有模型都引用了"my_db",我希望每个租户在我的mongo服务器上都有一个数据库.

var dataSourceObj = {
        my_db:{
          url: process.env.MONGOLAB_URI,
          connector: "mongodb",
          name: "my_db",
          database: tenant
        }
      }

      Object.keys(dataSourceObj).forEach(function(dataSource) {

        app.dataSources[dataSource].adapter.settings = dataSourceObj[dataSource];
        app.dataSources[dataSource].adapter.clientConfig = dataSourceObj[dataSource];
        app.dataSources[dataSource].settings = dataSourceObj[dataSource];
        app.dataSources[dataSource].connector.settings = dataSourceObj[dataSource];
        app.dataSources[dataSource].connector.clientConfig = dataSourceObj[dataSource];

      });
Run Code Online (Sandbox Code Playgroud)

有没有人有任何想法?这是一种多租户的愚蠢方式吗?

谢谢!

multi-tenant loopbackjs

6
推荐指数
1
解决办法
842
查看次数

与Emberjs的Strongloop

Ember Data的REST适配器以这种格式接受来自服务器的JSON:

摘自文档:http://guides.emberjs.com/v1.10.0/models/the-rest-adapter/

{
  "post": {
    "id": 1,
    "title": "Node is not omakase",
    "comments": [1, 2, 3]
  },

  "comments": [{
    "id": 1,
    "body": "But is it _lightweight_ omakase?"
  },
  {
    "id": 2,
    "body": "I for one welcome our new omakase overlords"
  },
  {
    "id": 3,
    "body": "Put me on the fast track to a delicious dinner"
  }]
}
Run Code Online (Sandbox Code Playgroud)

是否有可能从strongloop返回这种JSON格式?

ember.js strongloop loopbackjs

6
推荐指数
1
解决办法
763
查看次数

如何在路由器文件中获取应用程序(在Node / Express应用程序中)

我的app.js看起来像这样:

app = express();
setup.configure(app);
//...more stuff (e.g. database setup, middleware definition, etc.)...
var api = require('./routes/api');
app.use('/api', api);
module.exports = app;
Run Code Online (Sandbox Code Playgroud)

在路由/api.js中,然后有了带有中间件的路由,如下所示:

router.get('/myroute',
    app.sessionMW,
    function (req, res, next) {
        //...
    });
Run Code Online (Sandbox Code Playgroud)

JSLint标记错误,因为我将app变量声明为全局变量。如果我用声明var,则路由中会出现错误,因为app是undefined。如果我在路由文件中要求使用的应用程序var app = require('../app'),则会出现此错误:

错误:Route.get()需要回调函数,但得到了一个[object Undefined]

我想通过做适当的定义应用程序

var app = express();
Run Code Online (Sandbox Code Playgroud)

但是,如何访问路线文件中的应用程序?

javascript node.js express

6
推荐指数
2
解决办法
4575
查看次数

用玩笑嘲笑 jquery $.ajax

使用 jest 如何测试在我的 jQuery 应用程序中发出 ajax 请求并模拟其响应的函数?我的应用程序不是在 nodejs 中编译的,而是直接在浏览器中运行的。jest 站点https://github.com/facebook/jest/tree/master/examples/jquery上的示例假定 ajax 函数是一个单独的模块,并且整个应用程序都是用 webpack 之类的东西编译的。这是我的应用程序:

(function(root) {
    "use strict";
    // if environment is node then import jquery.
    var $ = (typeof module === "object" && module.exports) ? require('jquery') : jQuery;


    function displayUser() {

        var fetchCurrentUser = function (url) {
            var xhr = $.get(url);
            $.when(xhr)
                .done(function(data) {
                    greet(data);
                })
                .fail(function(jqXHR, textStatus, errorThrown) {
                    console.log(errorThrown);
                });
         };

        var greet = function(data) {
            $('#greet').text('Hello ' + data.name);
        }

        fetchCurrentUser('/my/api');

        return {
            fetchCurrentUser: …
Run Code Online (Sandbox Code Playgroud)

ajax jquery jestjs

6
推荐指数
2
解决办法
9884
查看次数

使用loopback标记来验证socket.io

我正在使用loopback 2.0和socket.io 1.0.6.

我想使用loopback身份验证方法来验证socket.io.

我找到了在loopback/lib/middleware/token.js中验证用户身份的方法.https://github.com/strongloop/loopback/blob/master/lib/middleware/token.js

然后我写如下:

var loopback = require('loopback');
var ioapp = module.exports = socketio;

function socketio(server) {
  var io = require('socket.io')(server);

  // auth
  io.use(function(socket, next) {
    loopback.token()(socket.request, null, next);
  });

  // listeners
  ...

  return io;
};
Run Code Online (Sandbox Code Playgroud)

但实际上我不会工作并导致这样的错误.

/Users/.../project_root/node_modules/loopback/lib/models/access-token.js:201
    id = req.param(params[i]);
             ^
TypeError: Object #<IncomingMessage> has no method 'param'
    at tokenIdForRequest (/Users/ksuzuki/Projects/appsocially/repo/chat-center/node_modules/loopback/lib/models/access-token.js:201:14)
    at Function.AccessToken.findForRequest (/Users/ksuzuki/Projects/appsocially/repo/chat-center/node_modules/loopback/lib/models/access-token.js:123:12)
    at /Users/ksuzuki/Projects/appsocially/repo/chat-center/node_modules/loopback/lib/middleware/token.js:53:16
    at Array.0 (/Users/ksuzuki/Projects/appsocially/repo/chat-center/server/socket.js:15:28)
    at run (/Users/ksuzuki/Projects/appsocially/repo/chat-center/node_modules/socket.io/lib/namespace.js:114:11)
    at Namespace.run (/Users/ksuzuki/Projects/appsocially/repo/chat-center/node_modules/socket.io/lib/namespace.js:126:3)
    at Namespace.add (/Users/ksuzuki/Projects/appsocially/repo/chat-center/node_modules/socket.io/lib/namespace.js:155:8)
    at Client.connect (/Users/ksuzuki/Projects/appsocially/repo/chat-center/node_modules/socket.io/lib/client.js:67:20)
    at Server.onconnection (/Users/ksuzuki/Projects/appsocially/repo/chat-center/node_modules/socket.io/lib/index.js:309:10)
    at Server.EventEmitter.emit …
Run Code Online (Sandbox Code Playgroud)

javascript websocket node.js socket.io loopbackjs

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

如何在Strongloop Loopback中更改http状态代码

我正在尝试修改create的http状态代码.

POST /api/users
{
    "lastname": "wqe",
    "firstname": "qwe",
}
Run Code Online (Sandbox Code Playgroud)

返回200而不是201

我可以为错误做些类似的事情:

var err = new Error();
err.statusCode = 406;
return callback(err, info);
Run Code Online (Sandbox Code Playgroud)

但是我找不到如何更改create的状态代码.

我找到了创建方法:

MySQL.prototype.create = function (model, data, callback) {
  var fields = this.toFields(model, data);
  var sql = 'INSERT INTO ' + this.tableEscaped(model);
  if (fields) {
    sql += ' SET ' + fields;
  } else {
    sql += ' VALUES ()';
  }
  this.query(sql, function (err, info) {
    callback(err, info && info.insertId);
  });
};
Run Code Online (Sandbox Code Playgroud)

rest http http-status-codes strongloop loopbackjs

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

文件观察者在grunt中没有更新css

我有以下gruntfile.js代码:

less: {
   development: {
      files: [{
         expand: true,
         cwd: 'assets/less',
         src: ['*.less'],
         dest: 'wwwroot/content/css/',
         ext: '.css'
      }]
   }
},
watch: {
   less: {
      files: ["assets/less/*.less"],
      task: ["less:development"]
    }
};


grunt.loadNpmTasks("grunt-contrib-less");
grunt.loadNpmTasks("grunt-contrib-watch");
Run Code Online (Sandbox Code Playgroud)

当我运行监视任务并对我的任何较少文件进行更改时,它检测到较少文件中的更改:

文件"assets\less\abc.less"已更改.

但问题是它没有更新我的abc.css文件.有谁知道为什么这个以及如何解决它?谢谢

javascript css less gruntjs

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

具有创建/修改的自定义LoopBack模型

看起来内置的LoopBack模型是用"创建/修改"日期字段烘焙的.有没有一种简单的方法将其添加到"生成"模型?我一直在查看文档,但在模型文档中找不到任何内容 - http://docs.strongloop.com/display/public/LB/Defining+models

有什么建议?

api strongloop loopbackjs

5
推荐指数
2
解决办法
3638
查看次数