いくつかの提案
index.htmlのajax呼び出しについて
-
index.html
の場合 が同じサーバーによって提供されている場合は、クロスドメイン呼び出しを使用しないでください。url
$.ajax
のプロパティ/start
のような相対URLにすることができます 。 - また、
jsonp
を使用しないことも考えられます。 リクエスト。
呼び出しは次のようになります
$.ajax({
dataType: 'json',
data: $('#formID').serialize(),
type: 'POST',
url: "./start",
success: handleButtonResponse,
});
JSONはどのように/どこでMongoDBに接続しますか?
あなたのajax呼び出しでは、./start
を要求しています 、したがって、同じルートをエクスプレスサーバーで作成する必要があります。のように
app.get('/start', function (req, res) {
db.collection('collectionName').insert({req.data}, function (err, doc) {
//rest of code
});
});
Expressには、Consolidateなどのテンプレートエンジンが必要ですか?もしそうなら、それはどのように/どこに収まりますか?
jade、ejs、hbsなど、テンプレートを作成するための多くのオプションがあります。jadeまたはそれらのいずれかを使用すると、高速ルートでのhtmlレンダリングコードが簡略化されます。
テンプレートエンジンなし
response.writeHead(200, {"Content-Type:": "application/json"});
var submittedPost = {};
submittedPost['message'] = 'Proof that Node and Mongo are working..';
response.write( "_wrapper('" );
response.write( JSON.stringify(submittedPost) );
response.write( "')");
response.end();
翡翠(現在はパグ)のようなテンプレートエンジンを使用
var submittedPost = {};
submittedPost['message'] = 'Proof that Node and Mongo are working..';
response.json(submittedPost);
テンプレートエンジンを使用すると、サーバー側の変数を使用してテンプレートをレンダリングしたり、テンプレート内でテンプレートにアクセスしたりできます。
app.get('/mypage', function (req, res) {
res.render('mytemplate_page',{template_variable:some_variable});
});
template_variable
を使用できます ループまたは表示するためのテンプレート内。