私はクラスのES 6構文を学んでいます。私はC#の背景から来たので、私の用語が正しくない場合はお詫び申し上げます。または、私が奇妙に見える何かをしている場合。ES 6 - クラスの使用
私は学習の練習としてWebアプリケーションを構築しています。これはNodeと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
というディレクトリがあります。
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 - 推奨アプローチは何ですか?私はこのことを学びたいと思っています。そこにはたくさんの例があります。良いアプローチ、貧弱なアプローチ、そして依存している別のフレームワークが使用しているアプローチのために単純に何が行われたのかを知るのは難しいです。 –
あなたの 'index.js'には[この構文](http://stackoverflow.com/a/34072770/1048572)をお勧めします。 – Bergi