Сегодня я сделал свое первое приложение с ExpressJS.
Проблема в том, что index.js
слишком велико (600 строк), я хотел бы организовать свой код в разные файлы.
Самая простая часть - это функции даты * stati c. У меня есть 5 функций, и я хотел бы поместить их в отдельный файл:
dates.js
import moment from "moment";
module.exports = {
getNextMonday: (firstDate) => {
let firstMonday = firstDate.add(1, "day").startOf('isoWeek');
if (!firstDate.isSame(firstMonday)) {
firstMonday = firstMonday.add(7, "day");
}
return firstMonday;
},
// Get the days in a array
getDays: (conso) => {
let days = conso.map(value => moment(value['date'], "DD-MM-YYYY HH:mm").format("DD"));
return days.filter(function (elem, pos) {
return days.indexOf(elem) === pos;
});
},
// Get the days in a array
getDaysWithHours: (conso) => {
let days = conso.map(value => value['date']);
// console.log(days);
return days.filter(function (elem, pos) {
return days.indexOf(elem) === pos;
});
},
getHourlyData: (data, monday) => {
return data.filter(item => {
const date = moment(item.date, "DD-MM-YYYY HH:mm");
// if moment(item.date, "DD-MM-YYYY HH:mm") + 7
if (isSameWeek(monday, date)) return item;
});
},
isSameWeek: (firstDay, secondDay) => {
let firstMoment = moment(firstDay);
let secondMoment = moment(secondDay);
return firstMoment.startOf('isoWeek').isSame(secondMoment.startOf('isoWeek'));
}
};
А затем в index.js
я пытаюсь использовать их:
let date = require('./dates.js');
...
const monday = date.getNextMonday(firstDay);
Но я получаю ошибку:
import moment from "moment";
^^^^^^
SyntaxError: Cannot use import statement outside a module
at Module._compile (internal/modules/cjs/loader.js:891:18)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:991:10)
at Module.load (internal/modules/cjs/loader.js:811:32)
at Function.Module._load (internal/modules/cjs/loader.js:723:14)
at Module.require (internal/modules/cjs/loader.js:848:19)
at require (internal/modules/cjs/helpers.js:74:18)
at Object.<anonymous> (/home/julien/Code/customer_recap/index.js:13:12)
at Module._compile (internal/modules/cjs/loader.js:955:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:991:10)
at Module.load (internal/modules/cjs/loader.js:811:32)
[nodemon] app crashed - waiting for file changes before starting...
Кажется, я не могу импортировать моментальную библиотеку lib в свой новый локальный модуль.
Почему? Как мне это сделать?