Как мне использовать эту функцию в Node.JS? - PullRequest
0 голосов
/ 28 апреля 2011
//tools.js
function randomString() {
    var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
    var string_length = 8;
    var randomstring = '';
    for (var i=0; i<string_length; i++) {
        var rnum = Math.floor(Math.random() * chars.length);
        randomstring += chars.substring(rnum,rnum+1);
    }
    return randomString;
}
exports.randomString = randomString();


//test.js
var tools = require('./tools');
console.log(tools.randomString());

Но когда я запускаю его, я получаю это:

[Function: randomString]

Как на самом деле заставить его выплевывать случайную строку?

Ответы [ 4 ]

4 голосов
/ 28 апреля 2011

exports.randomString = randomString;

или

exports.randomString = function() {....}

2 голосов
/ 28 апреля 2011

Вы уверены, что ваш принятый ответ полностью решит вашу проблему?

Если вы делаете

exports.randomString = randomString();

затем вы вызываете случайную строковую функцию ровно один раз и присваиваете результат export.randomString.

Пожалуйста, проверьте и позвоните несколько раз

console.log(tools.randomString());

Для получения дополнительных советов, пожалуйста, прочитайте мой другой ответ выше. Надеюсь, что смогу помочь.

2 голосов
/ 28 апреля 2011

Не знаю node.js подробно. Но

exports.randomString = randomString();

уже вызывает функцию и присваивает результат к export.randomString.

Чтобы назначить ссылку, вы должны убрать скобки.

Второй баг:

return randomString;

должно быть (смотреть дело)

return randomstring;

, поскольку это переменная, в которой вы строите и храните случайную строку.

1 голос
/ 28 апреля 2011

используйте другое имя для вашего результата. тот, который не совпадает с именем вашей функции.

переменная randomstring содержит ваш накопленный результат, но вы возвращаете randomString, который находится за ее пределами и является именем функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...