2016-06-05 4 views
0

Ich mache einen Zwiegesprächsbot, wo meine Freunde ein zufälliges Mem bekommen können, wenn sie einen Befehl eingeben. Die Variable, die ich verwende, befindet sich in einer anderen Datei namens ./translate. Wenn ich versuche, die Variable zu verwenden, stürzt mein Bot ab. HierFehler beim Versuch, eine Variable aus einer anderen Datei zu bekommen

ist der Code aus dem ./translate

module.exports.meme = [ 
    "http://img.ifcdn.com/images/60f7fcb2f6005a86d191fdc92c54ce4875bbc4003dcc689586757be212e8653d_1.jpg", 
    "http://img.ifcdn.com/images/6d3565cf992d951ebf62c6f8c313ebf2949ef4baafa6bbf6fc97cacb0e998df1_1.jpg", 
    "http://img.ifcdn.com/images/bea43e9848048bcf2bf4a646c410993d7800a6eeb69cea7ef8f0da6d5d098908_1.jpg", 
    "http://img.ifcdn.com/images/e126e4e9fa73e4ada39f85e29da7d443d752cd75fca5bff6b9596ca6248022c7_1.jpg", 
    "http://img.ifcdn.com/images/13a7b2a4b26e6f6dead5d35c4d147c346a363977c75c6105e25ca470fc77ec00_1.jpg", 
    "http://img.ifcdn.com/images/2aad4679f43b7acdf1d40b3ba0c48fe6a88fbb9233da89a91c986b83b828fa16_1.jpg", 
    "http://img.ifcdn.com/images/f9c74dd7410419400a6295a151da5fdecfeac06bbec666a05e7659cf40cd0627_1.jpg", 
    "http://img.ifcdn.com/images/8f7209128ed3265cfc4142a75504e185f203c6daf3614fa86c632307a6490270_1.jpg", 
    "http://img.ifcdn.com/images/939e697b8b2cea141e2aea424b7c985946395f8b99e4b21170566221ee804009_1.jpg", 
    "http://img.ifcdn.com/images/7a4517f2966d15a4abb79662e006002c667c6d0a68d804d01a75ef5ace034613_1.jpg", 
    "http://img.ifcdn.com/images/0801a830eac2622572a683783f13525fca19e3b0f5fc74058ce11e08ffc3a012_1.jpg", 
]; 

Hier ist der Code, um die Variable zu erhalten versucht:

var sourceFile = require('./translate'); 


function randMeme() { 
    console.log(sourceFile.meme); 
    return meme[Math.floor(Math.random()*meme.length)]; 
} 

Antwort

-1

Versuchen Sie, die Dateierweiterung wie translate.js

+0

'require()' muss nicht die Dateierweiterung, um das Modul zu importieren. Und selbst wenn die Datei, um es noch keine Erweiterung haben würde sowieso arbeiten. –

1
function randMeme() { 
    console.log(sourceFile.meme); 
    return meme[Math.floor(Math.random()*meme.length)]; 
      ^^^^       ^^^^ 
} 
hinzufügen

Versuchen Sie, var meme = sourceFile.meme; hinzuzufügen, bevor Siereferenzieren.

Alternativ können Sie Ihre zwei Dateien als solche umschreiben:

/* translate.js */ 
module.exports = [ 
    "http://...", 
    ... 
]; 
/* main file */ 
var meme = require('./translate'); 

function randMeme() { 
    console.log(meme); 
    return meme[Math.floor(Math.random()*meme.length)]; 
} 

Hinweis I .meme von module.exports.meme hier entfernt.

0

Variable 'source' werden Struktur haben wie diese

{ 
    meme: [ 
    "http://img.ifcdn.com/images/60f7fcb2f6005a86d191fdc92c54ce4875bbc4003dcc689586757be212e8653d_1.jpg", 
    "http://img.ifcdn.com/images/6d3565cf992d951ebf62c6f8c313ebf2949ef4baafa6bbf6fc97cacb0e998df1_1.jpg", 
    "http://img.ifcdn.com/images/bea43e9848048bcf2bf4a646c410993d7800a6eeb69cea7ef8f0da6d5d098908_1.jpg", 
    "http://img.ifcdn.com/images/e126e4e9fa73e4ada39f85e29da7d443d752cd75fca5bff6b9596ca6248022c7_1.jpg", 
    "http://img.ifcdn.com/images/13a7b2a4b26e6f6dead5d35c4d147c346a363977c75c6105e25ca470fc77ec00_1.jpg", 
    "http://img.ifcdn.com/images/2aad4679f43b7acdf1d40b3ba0c48fe6a88fbb9233da89a91c986b83b828fa16_1.jpg", 
    "http://img.ifcdn.com/images/f9c74dd7410419400a6295a151da5fdecfeac06bbec666a05e7659cf40cd0627_1.jpg", 
    "http://img.ifcdn.com/images/8f7209128ed3265cfc4142a75504e185f203c6daf3614fa86c632307a6490270_1.jpg", 
    "http://img.ifcdn.com/images/939e697b8b2cea141e2aea424b7c985946395f8b99e4b21170566221ee804009_1.jpg", 
    "http://img.ifcdn.com/images/7a4517f2966d15a4abb79662e006002c667c6d0a68d804d01a75ef5ace034613_1.jpg", 
    "http://img.ifcdn.com/images/0801a830eac2622572a683783f13525fca19e3b0f5fc74058ce11e08ffc3a012_1.jpg" 
    ] 
} 

In Ihrer randMeme Funktion gibt es eine falsche Syntax (Knoten nicht Variable 'meme' nicht kennt.

Bitte wie folgt ändern (verwenden sourceFile.meme statt meme)

function randMeme() { 
    console.log(sourceFile.meme); 
    return sourceFile.meme[Math.floor(Math.random() * sourceFile.meme.length)]; 
}