node.js로 서버를 만들어 두었고 서버에서 만든 변수를 nunjucks모듈을 사용해서 html에 표현하려고 합니다.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>productMain</title>
</head>
<body>
<h1>Here is product's Information!</h1>
<h2>products list</h2>
{% set names = {{productNames}}%} {{names}}
</body>
</html>
productNames는 배열 자료형이 들어가 있습니다.
서버 코드에는 넌적스를 임포트하는 코드와 넌적스 세팅하는 코드, 라우터에는 productMain.html을 렌더링 하는 코드가 있습니다.
- 넌적스 임포트
import nunjucks from "nunjucks";
- 넌적스 세팅
nunjucks.configure("views", {
express: app,
watch: true,
});
- productMain.html 렌더링
import express from "express";
import Product from "../schema/product.js";
const router = express.Router();
router.get("/", async (req, res, next) => {
try {
const products = await Product.find({});
const productNames = [];
for (let i = 0; i < products.length; i++) {
productNames.push(products[i].name);
}
console.log(products);
res.render("productMain", { productNames });
} catch (err) {
console.error(err);
next(err);
}
});
export default router;
문제는 productMain.html 파일에서 서버에서 만든 변수를 html에서 넌적스를 활용해 변수처럼 쓰려고 할때 에러가 납니다.
{% set names = {{productNames}}%}
parseAggregate: expected colon after dict key
이 에러에 대해 구글링을 해봤는데 결과가 많이 안 나올 뿐더러 제가 원하는 답변을 얻을 수가 없었습니다. 혹시 알고 계신 분들이 계신가요??