我如何在 strongloop 中使用 MySql 存储过程创建 Web 服务
How can i create web services using MySql Stored procedures in strongloop
我对强循环的概念不熟悉,想使用 MySql 存储过程而不是 table 模式创建 Web 服务,但我没有得到任何相关示例或分步说明有关如何以及在何处定义输入和输出参数、如何定义 getter 和 setter、如何使用存储过程的文档(我在 java 中使用)。 anybuddy 可以帮助我吗?我正在尝试使用 "Mode.js" 中的代码。我需要在哪里进行更改
module.exports = function(StaticData) {
StaticDataremoteMethod(
var ds = server.dataSources.MySQL;
var sql = 'SELECT * FROM static_data';
ds.connector.execute(sql, function(err, data)
{
if(err) return err;
console.log(err);
});,
{
accepts: [
{arg: 'id', type: 'number', required: true}
],
http: {path: '/:id/StaticDataremoteMethod', verb: 'get'}
}
);
};
同样,我在命令提示符下遇到以下异常
C:\Users\anupd\Desktop\ToursDemo>slc arc
Swagger: skipping unknown type "subscription".
Swagger: skipping unknown type "subscription".
Loading workspace C:\Users\anupd\Desktop\ToursDemo
StrongLoop Arc is running here: http://localhost:65058/#/
C:\Users\anupd\Desktop\ToursDemo\common\models\static-data.js:5
var ds = server.dataSources.MySQL;
^^^
SyntaxError: Unexpected token var
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:374:25)
at Object.Module._extensions..js (module.js:417:10)
at Module.load (module.js:344:32)
at Function.Module._load (module.js:301:12)
at Module.require (module.js:354:17)
at require (internal/module.js:12:17)
at C:\Users\anupd\Desktop\ToursDemo\node_modules\loopback-boot\lib\executor.
js:226:20
at Array.forEach (native)
at defineModels (C:\Users\anupd\Desktop\ToursDemo\node_modules\loopback-boot
\lib\executor.js:207:23)
提前致谢
参考这个link。
dataSource.connector.execute(sql, 参数, cb);
要么
dataSource.connector.query(sql, 参数, cb);
https://docs.strongloop.com/display/public/LB/Database+connectors
https://docs.strongloop.com/display/public/LB/Executing+native+SQL
method()
{
var server = require('../server');
var ds = server.dataSources.MySQL;
var sql = 'select * from Appuser';
ds.connector.execute(sql, function(err, data)
{
if(err) return err;
console.log(err);
console.log("data",data);
});
}
只需像 DemoModel.js 一样创建模型,然后将下面的代码复制并粘贴到 DemoModel.js
中
module.exports = function(DemoModel) {
var server = require('../../server/server');
var ds = server.dataSources.MySQL;
DemoModel.list = function(optionalparam, cb) {
var sql = 'select * from DemoModel';
ds.connector.execute(sql, function(err, data)
{
if(err) return err;
console.log(err);
console.log("data",data);
cb(null, data);
});
}
DemoModel.remoteMethod(
'list',
{
accepts: {arg: 'param', type: 'string'},
returns: {arg: 'result', type: 'object'},
http: {path: '/list', verb: 'get'}
}
);
};
just call like : http://localhost:3000/api//DemoModels/list
and also look this http://localhost:3000/explorer/
我对强循环的概念不熟悉,想使用 MySql 存储过程而不是 table 模式创建 Web 服务,但我没有得到任何相关示例或分步说明有关如何以及在何处定义输入和输出参数、如何定义 getter 和 setter、如何使用存储过程的文档(我在 java 中使用)。 anybuddy 可以帮助我吗?我正在尝试使用 "Mode.js" 中的代码。我需要在哪里进行更改
module.exports = function(StaticData) {
StaticDataremoteMethod(
var ds = server.dataSources.MySQL;
var sql = 'SELECT * FROM static_data';
ds.connector.execute(sql, function(err, data)
{
if(err) return err;
console.log(err);
});,
{
accepts: [
{arg: 'id', type: 'number', required: true}
],
http: {path: '/:id/StaticDataremoteMethod', verb: 'get'}
}
);
};
同样,我在命令提示符下遇到以下异常
C:\Users\anupd\Desktop\ToursDemo>slc arc Swagger: skipping unknown type "subscription". Swagger: skipping unknown type "subscription". Loading workspace C:\Users\anupd\Desktop\ToursDemo StrongLoop Arc is running here: http://localhost:65058/#/ C:\Users\anupd\Desktop\ToursDemo\common\models\static-data.js:5 var ds = server.dataSources.MySQL; ^^^
SyntaxError: Unexpected token var at exports.runInThisContext (vm.js:53:16) at Module._compile (module.js:374:25) at Object.Module._extensions..js (module.js:417:10) at Module.load (module.js:344:32) at Function.Module._load (module.js:301:12) at Module.require (module.js:354:17) at require (internal/module.js:12:17) at C:\Users\anupd\Desktop\ToursDemo\node_modules\loopback-boot\lib\executor. js:226:20 at Array.forEach (native) at defineModels (C:\Users\anupd\Desktop\ToursDemo\node_modules\loopback-boot \lib\executor.js:207:23)
提前致谢
参考这个link。
dataSource.connector.execute(sql, 参数, cb); 要么 dataSource.connector.query(sql, 参数, cb);
https://docs.strongloop.com/display/public/LB/Database+connectors https://docs.strongloop.com/display/public/LB/Executing+native+SQL
method()
{
var server = require('../server');
var ds = server.dataSources.MySQL;
var sql = 'select * from Appuser';
ds.connector.execute(sql, function(err, data)
{
if(err) return err;
console.log(err);
console.log("data",data);
});
}
只需像 DemoModel.js 一样创建模型,然后将下面的代码复制并粘贴到 DemoModel.js
中 module.exports = function(DemoModel) {
var server = require('../../server/server');
var ds = server.dataSources.MySQL;
DemoModel.list = function(optionalparam, cb) {
var sql = 'select * from DemoModel';
ds.connector.execute(sql, function(err, data)
{
if(err) return err;
console.log(err);
console.log("data",data);
cb(null, data);
});
}
DemoModel.remoteMethod(
'list',
{
accepts: {arg: 'param', type: 'string'},
returns: {arg: 'result', type: 'object'},
http: {path: '/list', verb: 'get'}
}
);
};
just call like : http://localhost:3000/api//DemoModels/list and also look this http://localhost:3000/explorer/