2016-11-28 2 views
-2

Я смущен о том, как импортировать функцию в файле с именем util.js что просто переворачивает строкуКак правильно импортировать с помощью так CommonJS

function reverseString(str) { 
    var reversed = " "; 
    for (var i = str.length - 1; i >= 0; i--) { 
     reversed += str[i]; 
    } 
    return reversed; 
} 
module.exports.reverseString = reverseString; 

Я хочу, чтобы получить доступ, что в другом файле , это называется server.js

Это то, что у меня есть до сих пор.

var util = require('./util'); 

util.reverseString(); 




var reversed = reverseString(req.body); 
res.send(reversed); 
} else { 
res.status(400).end() 
} 
}); 

Я использую почтальон для проверки узлов модулей, но когда я запускаю его я получаю

TypeError: Cannot read property 'length' of undefined 

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

ответ

2

reverseString Функция ожидает аргумент строки типа (может быть также массивом) и эту же функцию, которую вы итерируете по аргументу.

Но при вызове этой функции вы не передаете никаких параметров, поэтому аргумент str устанавливает значение undefined.

undefined не имеет свойства длины так что thowing этой ошибки

1

(Мой ответ направлен на ES5. Есть еще несколько Shorthands в ES6, как экспорт по умолчанию и именованного экспорт).

Вы можете использовать один экспорт:

module.exports = reverseString; 

Тогда:

var reverseString = require('./util'); 

reverseString("bobba"); 

//shorthand: 
require('./util')("bobba"); 

Или возвращает объект именованных экспорта:

module.exports = { reverseString: reverseString }; 

Тогда:

var utils = require('./util'); 
utils.reverseString("bobba"); 

// shorthand: 
require('./util').reverseString("bobba"); 
1

Вам необходимо обратиться к библиотеке, в которой находится функция, поскольку вы импортировали ее в переменную.

var util = require('./util'); 

// util.reverseString(); // this does nothing 

var req = { body: 'some string' }; 
var reversed = util.reverseString(req.body); // ref util here