#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». Таким образом, она возвращает функцию, а не случайную строку.