首页 > 解决方案 > ^ 语法错误:意外的标记 '<'

问题描述

我正在尝试在发布请求中呈现 cart.ejs 文件。

我的购物车.ejs

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="cart-container">
        <p id="cart-title">Your<strong>Cart</strong></p>
        <div id="empty-cart">
            <h1>Your Cart is Empty..</h1>
        </div>
</body>
</html>

购物车.js

const express = require('express');

const router = express.Router();
const Cart = require('../model/cart');


router.post('/',async (req,res) => {
    console.log(req.params.name);
    const carts= new Cart({
        name:req.body.name,
        qty:parseInt(req.body.quantity)
    });

    

    try{
    const a= await carts.save();
        res.render('cart');

    console.log(carts);
    }catch(err)
    {
        res.send(err);
    }   
});

module.exports = router;

我无法找出错误是什么。我在运行服务器时收到 ^ SyntaxError: Unexpected token '<' error。我检查了堆栈溢出中所有可能的答案,但无济于事。

标签: javascripthtml

解决方案


var cart = require('./views/cart.ejs');

require用于加载 JavaScript 模块(通常是 CommonJS 模块格式,但有时是 ES6 模块格式)。

EJS 文件不是JavaScript 模块。它们需要使用 EJS 编译器加载(当您使用 Express 时,通常使用 Express.js 指南中使用模板引擎render中描述的方法完成。即您在 carts.js 中所做的事情。

我不知道你为什么要尝试require一个,你没有提供 app.js,但没有。


推荐阅读