私はこれを間違ったやり方でやっていると推測していますが、約束などを使用しているはずですが、編集できるCMSを作成しようとしています。 mongodbドキュメントは、ブログ投稿や変数を記入したテンプレートに変換されます。変数がjavascript/node.jsで定義されるまで関数が呼び出されないようにする
My CMSは、ブログイメージ、作成者、タイトル、変更日、およびmongodbドキュメント_idをデータID属性として持つブログのリストを作成します。
ブログの1つをクリックすると、blogId経由でsocket.ioをサーバーに渡し、サーバーはブログを検索し、blogTemplateForm.pugファイルをレンダリングし、クライアントがチェックするクライアントにHTMLを送信します#editorコンテナに既にhtmlがある場合は、htmlを削除してから、編集コンテナ内に新しいhtmlを追加します。ここでユーザーはhtmlを編集できます。
この文書の参照は、mongooseモデルで処理されます。次に、コールバック関数を介して返されたブログにres.blogを設定します。後で使用するためにいくつかのフォームを生成します。 .blogオブジェクトを使用して、blogTemplateから必要なhtmlを生成し、そのhtmlをクライアントに送信します。
これは素晴らしいことですが、実際にはいけない場合でも、res.blogオブジェクトが未定義の場合があります。次の関数で..何のように? app.render()はエラーとnullを返すので、テンプレートをレンダリングする前にブログが定義されているかどうかをチェックするループを作成しました。しかし、これはhtmlがnullとして渡されるようになっても機能しません...何がありますか?
あなたは私のループを見てはres.blogそれは本当に任意の未定義のres.blogオブジェクトが通じて道を作っていることも意味がありません定義されているかどうかをチェックしている場合
socket.on('edit blog', function(blogId){
var res = {};
Blog.findById(blogId, function(err, blog){
res.blog = blog
res.form = Form(blog)
}).then(function(){
res.filledForm = Bridge(res.blog, res.form).getForm()
delete res.form
if (res.blog !== (undefined & null)) {
app.render(blogTemplateFormPath,{blog: res.blog}, function(err, html){
console.log(err);
console.log(html);
socket.emit('blog form', html)
})
} else while (res.blog == (undefined | null)) {
if (res.blog !== (undefined & null)) {
app.render(blogTemplateFormPath,{blog: res.blog}, function(err, html){
console.log(err);
console.log(html);
socket.emit('blog form', html)
})
}
}
})
})
私は別のオペランドを使用してみましたが、無駄に、常に時間の約5%はnullを返します
if (res.blog !== (undefined | null)) {
app.render(blogTemplateFormPath,{blog: res.blog}, function(err, html){
console.log(err);
console.log(html);
socket.emit('blog form', html)
})
} else while (res.blog == (undefined | null)) {
if (res.blog !== (undefined | null)) {
app.render(blogTemplateFormPath,{blog: res.blog}, function(err, html){
console.log(err);
console.log(html);
socket.emit('blog form', html)
})
}
}
は、任意の助けてくれてありがとう。スクリーンショットは高解像度1080p x 2ですので、コードを見ることができると思います。
ありがとう、完璧に動作します、ええ、それはいくつかの悪いコーディング、私の悪いです。あなたに多くの愛と幸運、私の友人<3 – lopu