这是我在model1.js中尝试的内容:
model1.remotemethod1 = function(id, data, cb) {
var model2 = app.models.model2;
model2.remotemethod2(id, data).then(response => {
cb(null, true);
});
};
这是我的model2.js: 它有remotemethod2的定义。
'use strict';
module.exports = function(model2) {
model2.remotemethod2 = function(id, data, cb) {
var promise;
let tags = data.tags ? data.tags.slice() : [];
delete data.categories;
delete data.tags;
promise = model2.upsertWithWhere({
or: [
{barcode: data.barcode},
{id: data.id},
],
}, data);
promise.then(function(model2) {
model2.tags.destroyAll().then(function() {
for (let i = 0; i < tags.length; i++) {
model2.tags.add(tags[i]);
}
cb(null, model2);
});
});
};
};
但它不起作用! 我认为app.models.model2没有给我模型的远程方法!也许我应该得到model2的一个实例!
答案 0 :(得分:1)
在remotemethod1
server.js
中声明app.start
,您就可以访问正确的app.models.model2
,并且您将能够使用其远程方法。
app.start = function() {
model1.remotemethod1 = (id, data, cb) => {
var model2 = app.models.model2;
model2.remotemethod2(id, data).then(response => {
cb(null, true);
});
};
model1.remoteMethod(
'remotemethod1', {
http: { path: '/remotemethod1', verb: 'post', status: 200, errorStatus: 400 },
accepts: [{arg: 'id', type: 'number'}, {arg: 'id', type: 'object'}],
returns: {arg: 'status', type : 'string' }
}) ;
}
// The rest of app.start...
编辑您还可以使用位于app
myprojectname/server/boot
上下文的远程方法
`module.exports(app) {
/* Create remote methods here */
}`
答案 1 :(得分:0)
var (VAR-NAME)= (CURRENT-MODEL).app.models.(ANOTHER_MODEL);
您现在可以通过调用其他方法之一来使用其他模型
EX:
VAR-NAME.create();