在风帆外使用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