2017-01-21 120 views
0

我有一個nodejs包,我有一個linkedList代碼。我想將我的LinkedList代碼包含在我的NodeJs js文件夾中,但我無法做到。我的錯是什麼? 我想使用這樣的NodeJs需要錯誤

這是我在我的文件夾的NodeJS代碼。(app.js)

var KullaniciJS=require('KullaniciLibrary.js'); 

這是我所需的文件夾代碼。(KullaniciLibrary.js)

function Kullanici(KullaniciAdi) 
{ 
    this.KullaniciAdi=KullaniciAdi; 
    this.Sonraki=null; 
} 
function KullaniciListe() 
{ 
    this.Bas=null; 
    this.Uzunluk=0; 
} 
KullaniciListe.prototype.Ekle=function(EklenecekKullaniciAdi) 
{ 
    var Bas=this.Bas; 
    if (!Bas) { 
     this.Bas = EklenecekKullaniciAdi; 
     this.Uzunluk++; 

     return EklenecekKullaniciAdi; 
    } 
    while (Bas.Sonraki!==null) { 

     Bas = Bas.Sonraki; 
    } 

    Bas.Sonraki = EklenecekKullaniciAdi; 

    this.Uzunluk++; 

    return EklenecekKullaniciAdi; 
}; 
+0

通常你必須如果要創建,則聲明要導出的功能一個NPM模塊。看看這個鏈接:https://docs.npmjs.com/getting-started/creating-node-modules – ollie

+0

我不能在我的js文件中包含這個js文件嗎? –

+0

當你想在你的本地機器上使用require('./KullaniciLibrary.js')...時注意文件前面的./。 如果這不起作用,那麼你將需要聲明一個全局的(壞主意),使用module.exports導出一個匿名函數,再次使用module.exports導出一個命名函數或導出一個對象 – ollie

回答

1

首先,您必須在KullaniciLibrary.js文件中聲明要導出的內容。您可以通過在文件的結尾添加以下行做到這一點:

module.exports = YOUREXPORT; 

YOUREXPORT將可能只是在方法名(或對象)。 之後,你想導入這樣的:

var KullaniciJS = require('./KullaniciLibrary'); 

請注意,您必須前綴./的名字,你不需要定義文件的結尾。

如果你不./前綴模塊,節點將搜索在node_modules文件夾中的模塊,而不是當前目錄

+0

當我運行這個代碼塊 var YeniKullanici = new KullaniciJS.Kullanici(「ASdf」); console.log(YeniKullanici.KullaniciAdi); 我得到這個錯誤TypeError:KullaniciJS.Kullanici不是一個函數爲什麼? –

0

在對的NodeJS需要從另一個文件中的函數必須導出,然後功能。 要導出功能用途:

module.export='your function name';

,並要求該功能使用:

const variable=require(./filename)

更多的瞭解使用此鏈接:

https://nodejs.org/api/modules.html