В моем проекте Node.js я пытаюсь импортировать модуль вспомогательных функций. Я получаю эту ошибку:SyntaxError: Неожиданный идентификатор с импортированным модулем Node.js
/home/Projects/my_app/helpers.js:3
var randomWeight = function(letters) {
^^^^^^^^^^^^ // <-- SyntaxError: Unexpected identifier with imported module Node.js
SyntaxError: Unexpected identifier
helpers.js:
module.exports = {
function randomWeight (letters) {
var total = letters.reduce(function (a, b) {
return a + b;
});
var r = (Math.random() * (0 - total) + total.tofixed(5));
var upto = 0;
for (var i = 0; i<=letters.length; i++) {
if ((upto + letters[i][0]) > r) {
return letters[i][1];
};
upto += letters[i][0];
};
}
/routes/index.js:
var express = require('express');
var router = express.Router();
var logic = require('../logic.js');
console.log(logic.letterSet)
Я пробовал много разных вариаций оператора импорта, в результате чего модуль импортируется как пустой объект. Из поиска SO это обычно происходит из-за циклического импорта, но я уверен, что я не импортирую файл logic.js где-нибудь еще в моем проекте (в частности, /server.js.) Я новичок в узле, поэтому устранение неполадок было выполнено как стрельба в темноте.
EDIT:
Я, кажется, решить эту проблему путем импорта соответствующих функций по отдельности, как:
exports.letterSet = letterSet;
exports.randomWeight = randomWeight;
, но я не совсем понимаю, как/почему я не могу импортировать весь модуль. Извините, если это кажется смешным вопросом, но я привык к python, где импорт модулей тривиален.
вместо того, чтобы просто разместить кучу кода, попытаться объяснить некоторые вещи, которые вы уже пробовали, а также некоторый контекст для вашего кода. – Oxcug
Ваш код не соответствует сообщению об ошибке. Кодовый блок 'helper.js' недопустим. Возможно, вы имели в виду 'module.exports = {randomWeight: function (letters) {...}};' –
Думаю, я вижу, что происходит. Я прочитал, что module.exports = {} был специфическим синтаксисом Node.js для экспорта модуля, считая, что я могу обернуть в него модуль, не имея на самом деле быть синтаксически правильным объектом ... затем снова, имея module.exports = function() {} приводит к той же ошибке. –