无法读取未定义的属性'等于'>>
当我尝试在节点/快捷应用中更新帖子时,出现以下错误。我也在使用mongoDB。
Cannot read property 'equals' of undefined at eval (eval at compile (/home/ubuntu/workspace/node_modules/ejs/lib/ejs.js:549:12), <anonymous>:78:42) at returnedFn (/home/ubuntu/workspace/node_modules/ejs/lib/ejs.js:580:17) at tryHandleCache (/home/ubuntu/workspace/node_modules/ejs/lib/ejs.js:223:34) at View.exports.renderFile [as engine] (/home/ubuntu/workspace/node_modules/ejs/lib/ejs.js:437:10)
这里是出现错误的地方
<% if(currentUser && bodhi.author.id.equals(currentUser._id) || currentUser && currentUser.isAdmin === true){ %>
这可能与我正在运行的节点/ npm版本有关吗?
我正在使用节点-vv10.9.0和npm -v6.4.1
我在使用以下功能的应用程序上具有类似的功能v10.5.0和npm -v6.2.0
这是我的模特:
var mongoose = require("mongoose"); var bodhiSchema = new mongoose.Schema({ name: String, donation: String, BTCaddress: String, image: String, imageId: String, description: String, createdAt: { type: Date, default: Date.now }, author: { id: { type: mongoose.Schema.Types.ObjectId, ref: "User" }, username: String }, comments: [ { type: mongoose.Schema.Types.ObjectId, ref: "Comment" } ] }); module.exports = mongoose.model("Bodhi", bodhiSchema);
这里是错误所指向的块:
<div class="col-md-12"> <div class="row"> <div class="thumbnail"> <img class="img-responsive" src="<%= bodhi.image %>"> <div class="caption-full"> <h4>suggested donation <%= bodhi.donation %>/BTC<h4> <hr> <h5><a><%=bodhi.name%></a></h5> <p><%= bodhi.description %></p> <p> <em>Submitted by: <%= bodhi.author.username %>, <%= moment(bodhi.createdAt).fromNow() %></em> </p> <% if(currentUser && bodhi.author.id.equals(currentUser._id) || currentUser && currentUser.isAdmin === true){ %> <a class="btn btn-xs btn-warning" href="/bodhis/<%=bodhi._id %>/edit">Edit</a> <form class="delete-form" action="/bodhis/<%=bodhi._id %>?_method=DELETE" method="POST" onsubmit="return confirm('Are You Sure You Want To Delete This Bodhi?');"> <button class="btn btn-xs btn- danger">Delete</button> </form> <% }%> </div> </div> </div>
这是我的app.js文件:
var dotenv = require('dotenv').config(),
express = require("express"),
app = express(),
bodyParser = require("body-parser"),
mongoose = require("mongoose"),
flash = require("connect-flash"),
passport = require("passport"),
cookieParser = require("cookie-parser"),
LocalStrategy = require("passport-local"),
methodOverride = require("method-override"),
Bodhi = require("./models/bodhi"),
Comment = require("./models/comment"),
User = require("./models/user"),
session = require("express-session"),
moment = require('moment'),
seedDB = require("./seeds"),
//requiring routes
commentRoutes = require("./routes/comments"),
bodhiRoutes = require("./routes/bodhis"),
indexRoutes = require("./routes/index"),
contactRoutes = require("./routes/contact");
console.log(process.env.DATABASEURL);
var url = process.env.DATABASEURL ||
"mongodb://localhost/bodhishare";
mongoose.connect(url);
app.use(bodyParser.urlencoded({extended: true}));
app.set("view engine", "ejs");
app.use(express.static(__dirname + "/public"));
app.use(methodOverride("_method"));
app.use(cookieParser());
app.use(session({secret: process.env.secret}));
app.use(flash());
//seedDB(); //uncomment this line to seed the database
app.locals.moment = require("moment");
//passport config
app.use(require("express-session")({
secret: process.env.secret,
resave: false,
saveUninitialized: false
}));
app.use(passport.initialize());
app.use(passport.session());
passport.use(new LocalStrategy(User.authenticate()));
passport.serializeUser(User.serializeUser());
passport.deserializeUser(User.deserializeUser());
app.use(function(req, res, next){
res.locals.currentUser = req.user;
res.locals.error = req.flash("error");
res.locals.success = req.flash("success");
next();
});
app.use("/", indexRoutes);
app.use("/bodhis", bodhiRoutes);
app.use("/bodhis/:id/comments", commentRoutes);
app.use("/contact", contactRoutes);
app.listen(process.env.PORT, process.env.IP ,function(){
console.log("The bodhishare server has started!");
});
当我尝试在节点/快捷应用中更新帖子时,出现以下错误。我也在使用mongoDB。无法在eval读取未定义的属性“等于”(在编译时为eval(/ home / ubuntu / ...
回答如下:嗨,您最后是如何解决的?我遇到了同样的错误。没有看到任何错字。谢谢!