2017-03-20 230 views
0

我有兩個類在同一個文件夾名爲controllers.js和utile.js。 Utile.js是一類客戶端。這是utile.js:我得到錯誤「路徑必須是字符串」

'use strict'; 

define('utile', [], function() { 
    var modulo = {}; 

modulo.getLimiteCaratterePost = function() { 
     var limite_carattari_post = 25; 
     return limite_carattari_post; 
    }; 
return modulo; 
}); 
在我controllers.js

我需要用這種方法,所以我嘗試以這種方式導入這個類:

async.waterfall([ 
      function(next){ 
       //the error start from the above line 
       require(['utile'], function (utile) { 
        console.log("uitle dentro "+JSON.stringify(utile_metodo.getLimiteCaratterePost())); 
        return next(); 
       }); 

      }, 
      function(next) { 
       console.log("GET LIMITE CARATTER "+JSON.stringify(utile_metodo.getLimiteCaratterePost())); 
       db.getObject(hash + ":bookmark:" + id_bookmark, next); 
      }, 
...... (continue the problem is the import); 

該計劃爲它我:

/bookmark/5/aaa 
AssertionError: path must be a string 
    at Module.require (module.js:496:3) 
    at require (internal/module.js:20:19) 
    at /vagrant/nodebb/node_modules/nodebb-plugin-connect-bookmarked/lib/controllers.js:34:5 

任何人都可以幫到我嗎?

+0

你可以粘貼你的require.config主文件嗎? – ayxos

+0

@ayxos require.config({ \t的baseUrl:config.relative_path + 「/ SRC /模塊」, \t waitSeconds:7, \t urlArgs: 「V =」 +配置[ '緩存無效'], \t路徑:{ \t \t '論壇': '../client', \t \t '管理員': '../admin', \t \t '供應商':' ../../vendor」, \t \t 'plugins':'../../plugins' \t} }); – Picco

+0

我的文件夾不在「baseUrl」路徑中!我怎樣才能修改這個? – Picco

回答

0

首先,當您創建模塊時,您必須使用module.exports對象將其導出,方法是將對象添加到該對象中。例如module.exports= {method: myMethod}等等

然後如果你想使用模塊,你必須要求它使用require(path)其中路徑可以是一個相對路徑,並且必須是一個字符串。所以,如果你想要模塊,你可以用exapmle var utile = require('./utile.js')

+0

如果我corret我的代碼以您的解決方案時,在controllers.js調用的方法: 「utile_metodo =需要(」 ./ utile.js'); \t \t \t \t的console.log(」 PATH「+ utile_metodo.getLimiteCaratterePost( ));「我otbain錯誤:」定義未定義「在utile.js – Picco

+0

嘗試導出模塊,通過添加到'module.exports'您的對象。 – Oskar

+0

它給我的「模塊不定義」的問題是這個utile.js有一些方法,我從客戶端使用。但我需要在同一個文件夾中的controllers.js中使用一些方法。在客戶端文件中我需要(['utile'],函數(utile){}「),它可以工作,但是當我在我的controllers.js中執行的非客戶端文件時,它不起作用! – Picco

相關問題