Strongloop - 使用 model.js 执行 PHP
Strongloop - Execute PHP with model.js
我正在尝试在环回模型中执行 PHP。访问 myapi:3000/api/Door/open 时,我希望它 运行 包含函数的 PHP 文件。
我将 /Door/open 添加为远程方法,它显示在 swagger.ui、api returns "message" 中:"createElement is not defined",即使包含 jquery。
这是我的 doors.js 显示的远程方法设置:
module.exports = function(Door) {
Door.open = function(id, cb) {
var script = createElement('script');
script.src = 'http://code.jquery.com/jquery-2.1.4.min.js';
script.type = 'text/javascript';
getElementsByTagName('head')[0].appendChild(script);
$.ajax({
url: "http://192.168.10.139/Facility/doorfunc_dynamic.php?dpip=192.168.10.249&doorid=3&func=unlock"
}).done(function(data) {
console.log(data);
});
};
Door.remoteMethod(
'open',
{
description: 'Open a door by id',
accepts: {args: 'id', type: 'number', name: 'id', description: 'Door id'},
returns: {arg: 'open', type: 'string'},
http: {path: '/open', verb: 'get'}
}
);
};
有谁知道如何解决这个问题?
我尝试在客户端文件夹中添加一个静态页面,但它没有显示在 swagger.ui 资源管理器中。
如果只想执行http请求,可以使用request包。
var request = require('request');
module.exports = function(Door) {
Door.open = function(id, cb) {
request('http://192.168.10.139/Facility/doorfunc_dynamic.php?dpip=192.168.10.249&doorid=3&func=unlock',
function(error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body);
}
});
};
Door.remoteMethod(
'open',
{
description: 'Open a door by id',
accepts: {args: 'id', type: 'number', name: 'id', description: 'Door id'},
returns: {arg: 'open', type: 'string'},
http: {path: '/open', verb: 'get'}
}
);
};
希望它能解决您的问题。
我正在尝试在环回模型中执行 PHP。访问 myapi:3000/api/Door/open 时,我希望它 运行 包含函数的 PHP 文件。
我将 /Door/open 添加为远程方法,它显示在 swagger.ui、api returns "message" 中:"createElement is not defined",即使包含 jquery。
这是我的 doors.js 显示的远程方法设置:
module.exports = function(Door) {
Door.open = function(id, cb) {
var script = createElement('script');
script.src = 'http://code.jquery.com/jquery-2.1.4.min.js';
script.type = 'text/javascript';
getElementsByTagName('head')[0].appendChild(script);
$.ajax({
url: "http://192.168.10.139/Facility/doorfunc_dynamic.php?dpip=192.168.10.249&doorid=3&func=unlock"
}).done(function(data) {
console.log(data);
});
};
Door.remoteMethod(
'open',
{
description: 'Open a door by id',
accepts: {args: 'id', type: 'number', name: 'id', description: 'Door id'},
returns: {arg: 'open', type: 'string'},
http: {path: '/open', verb: 'get'}
}
);
};
有谁知道如何解决这个问题? 我尝试在客户端文件夹中添加一个静态页面,但它没有显示在 swagger.ui 资源管理器中。
如果只想执行http请求,可以使用request包。
var request = require('request');
module.exports = function(Door) {
Door.open = function(id, cb) {
request('http://192.168.10.139/Facility/doorfunc_dynamic.php?dpip=192.168.10.249&doorid=3&func=unlock',
function(error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body);
}
});
};
Door.remoteMethod(
'open',
{
description: 'Open a door by id',
accepts: {args: 'id', type: 'number', name: 'id', description: 'Door id'},
returns: {arg: 'open', type: 'string'},
http: {path: '/open', verb: 'get'}
}
);
};
希望它能解决您的问题。