Как мне использовать эту функцию в Node.JS ?

#javascript #string #node.js

#javascript #строка #node.js

Вопрос:

 //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]
  

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

Комментарии:

1. Примечание: Я хочу сохранить ее там, где функция стоит сама по себе. (чтобы я мог копировать и вставлять материал в tools.js файл как обычный)

2. Вы действительно разбираетесь в этих вопросах об узлах! Это хорошо. Здесь нам нужны более фундаментальные вопросы

Ответ №1:

exports.randomString = randomString;

или

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

Комментарии:

1. Первая не работает. (и я не хочу использовать вторую)

Ответ №2:

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

 exports.randomString = randomString();
  

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

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

Вторая ошибка:

 return randomString;
  

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

 return randomstring;
  

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

Ответ №3:

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

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

 exports.randomString = randomString();
  

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

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

 console.log(tools.randomString());
  

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

Ответ №4:

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

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

Комментарии:

1. да? Дайте более подробную информацию. Не понимаю

2. Эммерман: Это из-за ошибки в приведенном выше коде: имя функции — «randomString» (обратите внимание на заглавные буквы), строка встроена в «randomstring» (обратите внимание на строчные буквы), но последний оператор функции — «return randomString». Таким образом, она возвращает функцию, а не случайную строку.