尝试从另一个文件获取变量时出错

时间:2016-06-05 21:51:14

标签: javascript node.js module

我正在制作一个不和谐机器人,以便我的朋友在输入命令时可以获得随机模因。我正在使用的变量位于名为./translate的不同文件中。当我尝试使用变量时,我的机器人崩溃了。

以下是./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",
];

以下是尝试接收变量的代码:

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


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

3 个答案:

答案 0 :(得分:1)

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

在引用var meme = sourceFile.meme;之前尝试添加meme

或者,您可以重写两个文件:

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

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

请注意,我已从此处.meme删除了module.exports.meme

答案 1 :(得分:0)

变量' sourceFile'将有这样的结构

{
  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"
  ]
}

在你的randMeme函数中,语法不正确(节点不知道变量' meme'。

请改变这样(使用sourceFile.meme而不是meme)

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

答案 2 :(得分:-1)

尝试添加translate.js

等文件扩展名