标签: loopbackjs

LoopBack JSON返回不一致

我们将LoopBack用于REST API.我们注意到REST端点返回JSON的不一致.我们可以编写代码,但最好知道如何在我们的代码中正确解决它.问题是当标准REST端点返回JSON时,没有JSON对象ID.但是,当我们从直接执行的查询返回JSON时,我们必须指定一个对象ID.这是从标准LoopBack REST'get'调用返回的JSON:

在此输入图像描述

当我们返回自己的JSON时,它似乎必须有一个ID:

在此输入图像描述

这是我们如何返回自己的JSON(TypeScript):

    var sql: string = "SELECT * FROM as_trialbalancelist"

    // Execute the SQL
    dbConn.query(sql, function (error: number, rows: any, fields: any) {

        // Check for errors 
        if (error) {
            console.log('ERROR: ' + error);
            // TODO: Need better error return.
            // res.send(error);
            return;
        }

        callback(null, rows);

    });

Dataview.remoteMethod(
    'trialbalance',
    {
        returns: { arg: 'data' },
        http: { verb: 'get' }
    }

    );
Run Code Online (Sandbox Code Playgroud)

当我们删除"returns:{arg:'data'}"时会导致错误.空白'arg'也会导致问题.

json strongloop loopbackjs

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

Count 方法在环回中与 where 子句一起使用时会引发语法错误

我在 node.js 中使用环回/强循环。我正在尝试在 count 方法中使用 where 子句进行分页。每当我尝试使用 where 子句时,它都会给我一个 mysql 语法错误,用于如下简单查询。

Ride.count({
where:{"id":20}
},function(err,totalCount){
if (err) {
log.info("Total error ", err);
fn(err);
}else {
log.info("Total count ", totalCount);
}
});
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误。

Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '20' at line 1\n at Query.Sequence._packetToError (D:\Code\liftee\rest-services\node_modules\loopback-connector-mysql\node_modules\mysql\lib\protocol\sequences\Sequence.js:48:14)\n at Query.ErrorPacket (D:\Code\liftee\rest-services\node_modules\loopback-connector-mysql\node_modules\mysql\lib\protocol\sequences\Query.js:83:18)\n at Protocol._parsePacket (D:\Code\liftee\rest-services\node_modules\loopback-connector-mysql\node_modules\mysql\lib\protocol\Protocol.js:271:23)\n at Parser.write (D:\Code\liftee\rest-services\node_modules\loopback-connector-mysql\node_modules\mysql\lib\protocol\Parser.js:77:12)\n at Protocol.write (D:\Code\liftee\rest-services\node_modules\loopback-connector-mysql\node_modules\mysql\lib\protocol\Protocol.js:39:16)\n at Socket. (D:\Code\liftee\rest-services\node_modules\loopback-connector-mysql\node_modules\mysql\lib\Connection.js:92:28)\n …
Run Code Online (Sandbox Code Playgroud)

node.js strongloop loopbackjs

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

从Loopback Remote Method返回XML

我正在使用Loopback Connector REST(1.9.0)并有一个返回XML的远程方法:

   Foo.remoteMethod
   (  
      "getXml",
      {
         accepts: [            
            {arg: 'id', type: 'string', required: true }
         ],
         http: {path: '/:id/content', "verb": 'get'},
         returns: {"type": "string", root:true},
         rest: {"after": setContentType("text/xml") }         
      }
   )
Run Code Online (Sandbox Code Playgroud)

响应始终返回转义的JSON字符串:

"<foo xmlns=\"bar\"/>" 
Run Code Online (Sandbox Code Playgroud)

代替

<foo xmlns="bar"/>
Run Code Online (Sandbox Code Playgroud)

请注意,响应的内容类型设置为text/xml.

如果我将Accept:标题设置为"text/xml",我总是将"Not Acceptable"作为响应.

如果我订

"rest": {
  "normalizeHttpPath": false,
  "xml": true
}
Run Code Online (Sandbox Code Playgroud)

在config.json中,然后我得到500错误:

SyntaxError: Unexpected token <
Run Code Online (Sandbox Code Playgroud)

我认为"xml:true"属性只是导致响应解析器尝试将JSON转换为XML.

如何在不解析的情况下让Loopback返回响应中的XML?问题是我将返回类型设置为"string"?如果是这样,Loopback会识别为XML的类型是什么?

node.js express loopbackjs

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

在模型的远程方法中使用查找时,回送顺序过滤器错误:

我在使用远程方法的查找中使用简单的排序过滤器时遇到了麻烦:

    /**
 * This remote method exposes the meals history from the current logged in user
 */
Meal.listMeals = function(req, res, cb) {
  Meal.find({
    where: {patientId: req.accessToken.userId},
    order: {mealDate: 'DESC'}
  }, cb);
};
Meal.remoteMethod('listMeals', {
  returns: {arg: 'meals', type: 'array'},
  http: {path:'/list-meals', verb: 'get'},
  accepts: [
    {arg: 'req', type: 'object', http: {source: 'req'}},
    {arg: 'res', type: 'object', http: {source: 'res'}}
  ]
});
Run Code Online (Sandbox Code Playgroud)

在上方,您可以看到我的remote / find实现,它在没有订单过滤器的情况下也可以正常运行。

订单{“ mealDate”:“ DESC”}无效

mealDate是我模型上的Date类型。

"properties": {
"mealDate": {
  "type": "date",
  "required": true,
  "default": "Date.now"
}, …
Run Code Online (Sandbox Code Playgroud)

sorting loopback node.js loopbackjs

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

如何为图像nodejs添加水印

如何在 nodejs 中为图像添加水印。我正在使用环回框架,我想为上传的每个图像添加水印,我尝试了几个图像处理模块,但无法实现水印。

我用代码尝试了图像水印库:

watermark.embedWatermark('./server/storage/images/img_hkd.jpg', { 'text': 'sample watermark' });
Run Code Online (Sandbox Code Playgroud)

但我收到此错误:错误:生成识别 ENOENT

javascript node.js express loopbackjs

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

如何配置loopback来为angular4 App提供服务?

我已经使用生成了一个LoopBack项目和Angular4项目angular-cli.我的LoopBack项目在端口提供html文件,3000我的Angular4项目正在服务于4200.

现在我需要知道我是否可以在3000上提供这个角度应用,就像从LoopBack目录提供静态文件一样?

我想问的是,是否有可能使用LoopBack服务器来提供Angular4应用程序就像它服务Angularjs应用程序一样?

谢谢

loopbackjs angular-loopback angular

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

在环回中为模型自动插入 createdAt 和 updatedAt 属性

我的环回应用程序中有一个持久模型,我想相应地自动添加createdAtupdatedAt属性为此模型实例。实现这一目标的简单方法是什么?

javascript model node.js loopbackjs

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

如何实时重新加载 LoopBack 项目?

有没有办法loopback在livereload中有项目?避免停止node .命令并重新启动?

node.js npm loopbackjs

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

Swagger:跳过未知类型“dateTime”

在环回的swagger规范中指定日期和时间的数据类型时,我遇到警告/错误。下面是我的环回user.json文件

"properties": {
    "schedule": {
      "type": "dateTime",
      "required": true
    },
 }
Run Code Online (Sandbox Code Playgroud)

Swagger:跳过未知类型“dateTime”

请问我可以知道swagger中日期和时间的相关数据类型是什么吗?

loopback node.js swagger swagger-ui loopbackjs

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

什么是“文件是一个 CommonJS 模块;它可能会被转换为一个 ES6 模块”警告意味着什么?如何解决?

我收到此警告'文件是一个 CommonJS 模块;当我需要 Express 时,它可能会在 VS Code 上转换为 ES6 模块。这是什么意思以及如何解决?? 这是警告的屏幕截图

javascript loopbackjs

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