サーバー側で段落タグ間のテキストを抽出する必要があるのはなぜですか??
これは、クライアント側の js で行うことです
あなたの場合、またはcontext
によって jade ビューに渡すパラメーターである必要がありますres.render('view', {context : "My content."})
res.locals
#{context}
ジェイドビューで対処できるように
context
Jadeビューで変数を宣言したい場合
それは次のようになるはずです
-var context= "私のコンテンツ。"
p #{コンテンツ}
jsdom
コードに返信する
あなたのコードで
posts[i]
未定義です。
投稿を繰り返したいと思うので、iterator
hereを使用する必要があります
async
ここでモジュールを使用できます
この場合、map
非常に適しています
ドキュメントはこちらをご覧ください - >非同期マップ
Creation.findAll({where: "state = 1",order: 'id DESC', limit: 2}).success(function(creations) {
Post.findAll({where: "state = 1",order: 'id DESC', limit: 2}).success(function(posts){
async.map(posts, function(postEntity, callback){
jsdom.env(
postEntity.content,
["http://code.jquery.com/jquery.js"],
function(errors, window) {
//deal with errors
if(errors) return callback(errors);
postEntity.content = window.$("p").text();
callback(null, postEntity);
}
);
}, function(err, transformedPosts){
if(err) return callback(err);
res.render('index', {
creations: creations,
posts: transformedPosts,
title: "Anthony Cluse | Portfolio"
});
});
});
});
参考までに、制御フロー ライブラリを使用してコールバック コードを管理する必要があります
そうしないと、維持するのが本当に難しいでしょう
私はお勧めasync