node.js отображает "неопределенный" на консоли

Недавно я установил node.js на моем компьютере с Windows 7.

При выполнении JavaScript я получаю неопределенное сообщение вместе с успешным выполнением выражения.

Что здесь не так? Я не заметил никаких других побочных эффектов.

11 ответов

Решение

Просто пиши "hello world"; и нажмите Enter... он вернется "hello world" вместо undefinedТаким образом, нет undefined отображается. console.log возвращается undefined а также записывает аргументы в консоль, чтобы вы получили несколько сообщений.

Функции JavaScript всегда возвращают что-то. Если вы не укажете что-либо для возврата в функции, по умолчанию возвращается "undefined" (вы можете проверить это и в Firebug).

Не волнуйтесь, это ни на что не влияет, вы можете игнорировать это.

Как отмечают другие, функция javascript всегда будет возвращать undefined, если вы не укажете никакого возвращаемого значения. Вы можете просто игнорировать это. Это не причинит никакого вреда. Но если вас это сильно раздражает, вы можете отключить его в repl. Repl имеет это свойство ignoreUndefined, которое по умолчанию имеет значение false. Вы можете установить его в true. Попробуй это:

module.exports.repl.ignoreUndefined = true;

Ну, вопрос был задан несколько лет назад, но есть еще один способ объяснить, что здесь происходит.

Попробуйте следующую команду:

console.log("Hello World") || "Bye World";

Как уже упоминалось, функция console.log() возвращается undefined обычно, и вы можете выбрать лучшее возвращаемое значение. Поскольку нестрогое (абстрактное) сравнение учитывает undefined равно false || Оператор позволяет вам этот выбор.

Учитывая, что это всего лишь инструмент отладки, он не нужен в общем использовании, но помогает понять, что консоль отображает текст, отправленный на стандартный вывод, а также пропускает команду и отображает возвращаемое значение или не определено, если значение не было получено.

node также печатает undefined потому что в ОБЩЕМ, он отображает возвращаемое значение каждой команды и console.log ничего не возвращает.

Если вам нужно включить ignoreUndefined внутри модуля вы можете использовать следующую строку для имитации AvinashB, не набирая текст самостоятельно в консоли:

process.stdin.emit('data', "module.exports.repl.ignoreUndefined = true;\n");

Это происходит из-за того, что console.log имеет (null/undefined) возвращаемый тип для решения этой проблемы... есть функция, возвращающая строку... затем записывает эту функцию, возвращающую значение... которая преодолеет неопределенную проблему..

const addNotes= function(msg)
{
    return msg;
}
console.log(addNotes('say hello'));

Просто игнорируйте это, не о чем беспокоиться. У меня тоже была такая же проблема, когда я вызвал функцию без какого-либо типа возврата. Итак, узел используется для вывода неопределенного типа возвращаемого значения для вызываемой функции.

function emitEvent(eventname){
    eventEmitter.emit(SIV_EVENT);
}
console.log(emitEvent());

Отметьте здесь undefined, https://nodejs.org/api/util.html.

Чтобы не видеть undefined вывод команд при использовании Node's repl модуль, набор ignoreUndefined к true в repl.start.

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

      app.use(express.json())

Это случилось и со мной, когда я только начал изучать node.js. Это ожидаемое поведение. Функция console.log возвращает значение void, и причина, по которой вы видите распечатанное значение undefined (даже если вы этого не сказали), заключается в том, что терминал печатает его для вас. Это просто дает вам понять, что эта функция возвращает этот тип.

Другие вопросы по тегам