在风帆外使用sails.js模型

我试图在风帆上下文之外使用我的Sails.js模型。我有一个叫做“Request”的简单模型,我正在使用sails-disk适配器。在Sails应用程序内部一切正常,但是当我尝试在应用程序外部使用模型时(我正在运行一个单独的代理服务器,需要保存通过它的请求),我得到下面的错误。看起来这个.waterline.schema由于某种原因未定义。这由最后一个代码示例中的“新请求()”行触发。在风帆外使用sails.js模型

注意:This question建议使用Sails.load来包装sails服务器上下文中的所有内容,但我已经有一个sail服务器与代理服务器分开运行,所以当我尝试这样做时会出现各种各样的错误。

错误:

/path-to-app/node_modules/sails/node_modules/waterline/lib/waterline/core/index.js:70 

var schemaAttributes = this.waterline.schema[this.identity].attributes;

TypeError: Cannot read property 'request' of undefined

API /模型/ Request.js

module.exports = { 

identity: 'request',

schema: true,

autoCreatedAt: true,

autoUpdatedAt: true,

migrate: 'alter',

attributes: {

id: {

type: 'string',

primaryKey: true,

required: true

},

method: 'string',

url: 'string'

}

./proxy.js试图加载帆在外部脚本水线模型(略)

var uuid = require('node-uuid'), 

Waterline = require('sails/node_modules/waterline'),

RequestCollection = require('./api/models/Request.js'),

sailsDisk = require('sails-disk');

RequestCollection.adapter = 'localDiskDb';

var Request = Waterline.Collection.extend(RequestCollection);

new Request({

adapters: {

localDiskDb: sailsDisk

}

}, function(err, collection) {

if (err) {

console.error(err);

return;

}

// Save the request

collection.create({

id: uuid.v4(),

method: 'foo method',

url: 'foo url'

}).exec();

});

回答:

您可以运行不同的端口上的帆服务器(以及任何其他常见的不可复制的资源),以避免错误

var SailsApp = require('sails').Sails; 

var Sails = new SailsApp();

process.env.NODE_ENV = "database"; //use a different environment settings file

process.env.PORT = "1332"; //and a different port , blocked by firewall if needed

Sails.lift({

log: {

//level: 'silly'

level: 'silent'

},

}, function (err, sails) {

if (err) {

return done(err);

}

//do something with sails here.

});

以上是 在风帆外使用sails.js模型 的全部内容, 来源链接: utcz.com/qa/265981.html

回到顶部