Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript SyntaxError:编译EJB时/var/www/html/views/components/show.ejs中出现意外标记| |_Javascript_Html_Node.js_Express - Fatal编程技术网

Javascript SyntaxError:编译EJB时/var/www/html/views/components/show.ejs中出现意外标记| |

Javascript SyntaxError:编译EJB时/var/www/html/views/components/show.ejs中出现意外标记| |,javascript,html,node.js,express,Javascript,Html,Node.js,Express,我正试图从他在Udemy上的web开发训练营中构建类似于Colt Steele的YelpCamp项目的东西。我的项目一直在进行,直到课程快结束时使用提供的YouTube资料进行重构。试图显示数据库中的任何内容时,我收到以下错误消息: SyntaxError: Unexpected token || in /var/www/html/views/components/show.ejs while compiling ejs If the above error is not helpful, y

我正试图从他在Udemy上的web开发训练营中构建类似于Colt Steele的YelpCamp项目的东西。我的项目一直在进行,直到课程快结束时使用提供的YouTube资料进行重构。试图显示数据库中的任何内容时,我收到以下错误消息:

SyntaxError: Unexpected token || in /var/www/html/views/components/show.ejs while compiling ejs

If the above error is not helpful, you may want to try EJS-Lint:
https://github.com/RyanZim/EJS-Lint
Or, if you meant to create an async function, pass `async: true` as an option.
    at new Function (<anonymous>)
    at Template.compile (/var/www/html/node_modules/ejs/lib/ejs.js:626:12)
    at Object.compile (/var/www/html/node_modules/ejs/lib/ejs.js:366:16)
    at handleCache (/var/www/html/node_modules/ejs/lib/ejs.js:215:18)
    at tryHandleCache (/var/www/html/node_modules/ejs/lib/ejs.js:254:16)
    at View.exports.renderFile [as engine] (/var/www/html/node_modules/ejs/lib/ejs.js:459:10)
    at View.render (/var/www/html/node_modules/express/lib/view.js:135:8)
    at tryRender (/var/www/html/node_modules/express/lib/application.js:640:10)
    at Function.render (/var/www/html/node_modules/express/lib/application.js:592:3)
    at ServerResponse.render (/var/www/html/node_modules/express/lib/response.js:1012:7)
    at /var/www/html/routes/components.js:84:17
    at /var/www/html/node_modules/mongoose/lib/model.js:4834:16
    at /var/www/html/node_modules/mongoose/lib/helpers/promiseOrCallback.js:24:16
    at /var/www/html/node_modules/mongoose/lib/model.js:4857:21
    at _hooks.execPost (/var/www/html/node_modules/mongoose/lib/query.js:4366:11)
    at /var/www/html/node_modules/kareem/index.js:135:16

你知道我可能做错了什么吗?

在第45行,comment.author.id.equals(currentUser.id)call后面有一个额外的右括号

<% if(currentUser && comment.author.id.equals(currentUser._id)) || currentUser && currentUser.isAdmin){ %>
  <!--                                                      ^^^^             -->
  <a class="btn btn-xs btn-warning"
    href="/components/<%= component._id %>/comments/<%= comment._id %>/edit">Edit</a>
  <form class="delete-form" action="/components/<%= component._id %>/comments/<%= comment._id %>?_method=DELETE" method="post">
    <input type="submit" class="btn btn-xs btn-danger" value="Delete">
  </form>
</div>
<% } %>
var express    = require("express");
var router     = express.Router();
var Component  = require("../models/component");
var Comment    = require("../models/comment");
var middleware = require("../middleware");
var {isLoggedIn, checkComponentOwnership, checkCommentOwnership, isAdmin} = middleware;

// Defining escapeRegex for search feature
function escapeRegex(text) {
  return text.replace
};


//INDEX- show inventory
router.get("/", function(req, res){
  if (req.query.search && req.xhr) {
    var regex = new RegExp(escapeRegex(req.query.search), 'gi');
    //Getting Inventory
    Component.find({name: regex}, function(err, allComponents){
      if(err){
        console.log(err);
      } else {
        res.status(200).json(allComponents);
      }
    });
  } else {
    // Get Items from DB
    Component.find({}, function(err, allComponents){
      if(err){
        console.log(err);
      } else {
        if(req.xhr) {
          res.json(allComponents);
        }
        else {
          res.render("components/components", {components: allComponents, page: 'components'});
        }
      }
    });
  }
});

// CREATE- Add Components to DB
router.post("/", isLoggedIn, function(req, res){
  //Get form data and add to array- add here with invSchema
  var name  = req.body.name;
  var image = req.body.image;
  var desc  = req.body.description; //Add stuff from invSchema here
  var author = {
    id      : req.user._id,
    username: req.user.username
  }
  var cost  = req.body.cost;
  var newComponent = {name: name, image: image, cost: cost, description: desc, author:author};
  // Create a new component
  Component.create(newComponent, function(err, newlyAdded){
    if(err){
      console.log(err);
    } else {
      //redirect back to Inventory page
      console.log(newlyAdded);
      res.redirect("/components");
    }
  });
});

// NEW= Take to Inventory form
router.get("/new", isLoggedIn, function(req, res){
  res.render("components/new");
});

//SHOW- shows info on specific component
router.get("/:id", function(req, res){
    //find component by idea
    Component.findById(req.params.id).populate("comments").exec(function(err, foundComponent){
        if(err){
            console.log(err);
            req.flash('error', 'No components are listed under that name.');
            return res.redirect('/components');
        } else {
            console.log(foundComponent)
            //render show template with that component
            res.render("components/show", {component: foundComponent});
        }
    });
});

//EDIT COMPONENT ROUTE
router.get("/:id/edit", checkComponentOwnership, isLoggedIn, function(req, res){
  //Find the component
  Component.findById(req.params.id, function(err, foundComponent){
    if(err){
      console.log(err);
      req.flash('error', 'Unable to edit component')
    } else{
      res.render("components/edit", {component: foundComponent});
    }
  });
});

// UPDATE COMPONENT ROUTE
router.put("/:id", checkComponentOwnership, function(req, res){
    var newData = {name: req.body.name, image: req.body.image, cost: req.body.cost, description: req.body.description};
    Component.findByIdAndUpdate(req.params.id, {$set: newData}, function(err, component){
      if(err){
        req.flash("error", err.message)
        res.redirect("back");
      } else {
        req.flash("success", "Component has been updated successfully")
        res.redirect("/components/" + req.params.id);
      }
    });
  });

// DESTROY Route
router.delete("/:id", checkComponentOwnership, isLoggedIn, function(req, res){
  Comment.remove({
    _id: {
      $in: req.component.comments
    }
  }, function(err) {
      if(err){
        req.flash('error', err.message);
        res.redirect('/');
      } else{
        req.component.remove(function(err) {
          if(err){
            req.flash('error', err.message);
            res.redirect('/');
          }
            req.flash('error', 'Component Removed');
            res.redirect('/components');
        });
      }
  });
});

module.exports = router;
<% if(currentUser && comment.author.id.equals(currentUser._id)) || currentUser && currentUser.isAdmin){ %>
  <!--                                                      ^^^^             -->
  <a class="btn btn-xs btn-warning"
    href="/components/<%= component._id %>/comments/<%= comment._id %>/edit">Edit</a>
  <form class="delete-form" action="/components/<%= component._id %>/comments/<%= comment._id %>?_method=DELETE" method="post">
    <input type="submit" class="btn btn-xs btn-danger" value="Delete">
  </form>
</div>
<% } %>
Unexpected token (45:81) in test.ejs