簡體   English   中英

有沒有辦法禁用水線並在sails.js中使用不同的ORM?

[英]Is there a way to disable waterline and use a different ORM in sails.js?

我想在我的sails.js應用程序中用mongoose替換水線。 我正在尋找正確的方法來做到這一點,但我沒有看到文檔中的內容。 任何人都可以解釋如何做到這一點?

通過.sailsrc定義覆蓋

您可以通過配置覆蓋執行此操作,通過項目根目錄中的.sailsrc進行定義。 基本上你必須阻止整個Waterline初始化,目前標記為orm hook。 在.sailsrc中:

{
  "hooks": {
    "orm": false,
    "pubsub": false
  }
}

您還必須禁用pubsub掛鈎 - 它取決於orm掛鈎。 源中的相關行: v0.10v0.9.8

這將關閉以下啟動命令的orm掛鈎:

  • 帆升降機
  • 帆控制台
  • node app.js(自提交862c053a66 ),請參閱舊版本的“使app.js使用.sailsrc”

關於在未來版本的Sails中的穩定性,您應該知道鈎子系統當前被標記為不穩定的事實,並建議禁用掛鈎:

// Allow disabling of hooks by setting them to "false"
// Mostly useful for testing, and may cause instability in production!

其他信息可以在這里找到:

使app.js使用.sailsrc

注意 :默認情況下,這會被捆綁到Sails中,因為討論的PR被合並用於邊緣git簽出。

對於Sails 0.10.x

要使.sailsrc適用於app.js,您可以用以下代碼替換app.js中的第37行:

// app.js, following line 36
var fs = require('fs');
var sailsRc = __dirname + '/.sailsrc';
var config = {};

fs.exists(sailsRc, function(exists){
   if (!exists) return sails.lift();

   fs.readFile(sailsRc, 'utf8', function(err, data){
     if (err) {
       console.warn('Error while reading .sailsrc:' + err);
     }

     try {
       config = JSON.parse(data);
     } catch(e) {
       console.warn('Error while parsing .sailsrc:' + err);
     }

     sails.lift(config);
   });
});

對於Sails 0.9.x.

用這個替換app.js:

// Start sails and pass it command line arguments
var fs = require('fs'),
    optimist = require('optimist'),
    sails = require('sails');

var sailsRc = __dirname + '/.sailsrc';
var config = optimist.argv;

fs.exists(sailsRc, function(exists){
  if (!exists) return sails.lift(config);

  fs.readFile(sailsRc, 'utf8', function(err, data){
    if (err) {
      console.warn('Error while reading .sailsrc:' + err);
    }

    try {
      config = sails.util.merge(config, JSON.parse(data));
    } catch(e) {
      console.warn('Error while parsing .sailsrc:' + err);
    }

    sails.lift(config);
 });
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM