NodeJs требуют (./file.js) проблем
У меня возникают проблемы, включая файлы для выполнения в моем проекте NodeJs.
У меня есть два файла в одном каталоге:
a.js
var test = "Hello World";
и
b.js
require('./a.js');
console.log(test);
Я выполняю b.js с node b.js
и получаю ошибку ReferenceError: test is not defined
.
Я просмотрел документы http://nodejs.org/api/modules.html#modules_file_modules
Что мне не хватает? Спасибо заранее.
Ответы
Ответ 1
Измените a.js, чтобы экспортировать переменную:
exports.test = "Hello World";
и присвойте возвращаемое значение require('./a.js')
переменной:
var a = require('./a.js');
console.log(a.test);
Другой шаблон, который вы часто увидите и, вероятно, используете, - это присвоить объекту module.exports
что-то (объект, функция) в a.js, например:
module.exports = { big: "string" };
Ответ 2
Вы не понимаете, что должно произойти. Переменные, определенные в вашем модуле, не используются совместно. NodeJS использует их.
Вы должны вернуть его с помощью module.exports
.
a.js
module.exports = "Hello World";
b.js
var test = require('./a.js');
console.log(test);
Ответ 3
если вы хотите экспортировать переменную в другой файл. Есть два шаблона.
Один
a.js
global.test = "Hello World";
//test здесь - глобальная переменная, но она будет загрязнена
Другое - это
a.js
module.exports.test = "Hello World";
или export.test = "Hello World";
b.js
var test = require('./a.js');
//test в b.js может получить тест в a.js
console.log(тест);