Я изучаю синтаксис классов ES 6 классов. Я исхожу из фона C#, поэтому прошу прощения, если моя терминология неверна. Или, если я делаю то, что выглядит странно.ES 6 - Использование классов
Я создаю веб-приложение в качестве учебного упражнения. Он построен на узле и Express. У меня есть несколько маршрутов, определенных следующим образом:
'use strict';
module.exports = function() {
const app = this;
app.use('/blog', function(req, res) {
console.log('loading blog postings');
res.render('blog', {});
});
app.use('/', function(req, res) {
console.log('looking up: ' + req.path);
res.render('home', {});
});
};
Я пытаюсь поместить некоторые viewModels за этими видами. Итак, у меня есть каталог под названием viewModels
. Этот каталог содержит следующие файлы:
index.js
blog.js
home.js
файлы в настоящее время, вероятно, неточно, выглядят следующим образом:
index.js
'use strict';
module.exports = function() {
const HomeViewModel = require('./home);
const BlogViewModel = require('./blog);
};
blog.js
export default class BlogViewModel {
constructor() {
this.title = 'My Blog';
}
}
home.js
export default class HomeViewModel {
constructor() {
this.title = 'Home';
}
}
Моя мысль была, что я мог бы использовать index.js
как способ определить свой пакет или пространства имен. Затем, в моем коде маршрутизации, я мог бы сделать что-то вроде этого:
'use strict';
module.exports = function() {
const app = this;
const ViewModels = require('../viewModels/index');
app.use('/blog', function(req, res) {
console.log('loading blog postings');
let viewModel = new ViewModels.BlogViewModel();
res.render('blog', viewModel);
});
app.use('/', function(req, res) {
console.log('looking up: ' + req.path);
let viewModel = new ViewModels.HomeViewModel();
res.render('home', viewModel);
});
};
Однако, когда я пытаюсь это, я получаю некоторые ошибки во время выполнения, которые говорят, «Ошибка: Не удается найти модуль" ../viewModels/index» , Это означает, что я не настраиваю свой модуль должным образом. Но, похоже, я то, что я делаю неправильно?
Вы не должны смешивать commonjs с модулями ES6. – Bergi
@Bergi - Итак, какой рекомендуемый подход? Я пытаюсь изучить этот материал, и есть так много примеров. Трудно понять, что такое хороший подход, что плохой подход, и то, что было сделано просто из-за подхода другой структуры, от которой зависит использование. –
Я бы рекомендовал [этот синтаксис] (http://stackoverflow.com/a/34072770/1048572) для вашего 'index.js'. – Bergi