ここで何が起こっているのか、なぜJSONキー名にピリオドを使用するのか不明です。JSONレスポンスでキー名からピリオドを削除する
私がしようとしていることの概要は、ejs変数を使ってjson応答をページテンプレートに渡し、個々のフィールドでそのデータを取得することです。
JSONレスポンスは次のようになります。
それはprismic.ioからです。 (オブジェクトの括弧はそこで切り取られ、データはメインオブジェクトの子です)。
私はEJS
<%= product.data.product.imgone2.value.main.url %>
を通じて注入したとき、私はのようなエラーが出ます:
なぜこれを行うプリズミックなり、Cannot read property 'imgone2' of undefined
?
EJSでインラインで修正する方法はありますか?
もしそうでなければ、JSONレスポンスをjavascript関数で解析してそれを削除するにはどうすればよいですか?あなたは私のルートを必要とする場合には
:
router.get('/product/:slug', function(req, res) {
//route params
var slug = req.params.slug;
var productResp; //scope up api response to pass to render()
console.log(slug);
//api call
Prismic.api("https://prismic.io/api").then(function(api) {
return api.getByUID('product' , slug);
}).then(function(response) {
res.render('product-template', {
product: response,
})
}, function(err) {
console.log("Something went wrong: ", err);
});
});
ありがとう!
あなたは 'product.data [" product.imgone2 "]。value.main.url'を試してみましたか? – Hamms
ブラケット記法FTW! – epascarello