我正在尝试在nodeJS的show路由中检索具有objectId的解析对象。以下是我的代码,可帮助您更好地理解。
//SHOW route
app.get("/books/:id", function(req, res) {
var Books = Parse.Object.extend("Books");
var query = new Parse.Query(Books);
query.equalTo("objectId", req.params.id);
query.find().then(function(foundBook){
res.render("show", {book: foundBook});
}, function(error) {
res.send("Error: " + error.code + " " + error.message);
});
});
基本上,req.params.id不返回objectID。当我尝试console.log(req.params.id)时,它返回存储在数据库中的书的书名,而不是对链接到/ books /:id页很重要的objectId。
即使我尝试从索引路径中的数据库中检索所有对象,我也注意到<%= book.get('objectId')%>并未显示在ejs页面上。
请帮助我。我是一名初学者MEAN Stack Web开发人员,但我使用的是parse服务器,因为android和web应用程序将在parse.com上共享同一数据库。
谢谢。
<% books.forEach(function(book) { %>
<div class="col-md-3 col-sm-6">
<div class="thumbnail">
<!-- this line of code gets the image content of the array and puts it in the img tag -->
<img src="<%= book.get('coverPictureLink') %>">
<div class="caption">
<h4><%= book.get('Title') %></h4>
</div>
<p>
<!-- This code adds the button and links it to the ID of the campground that was clicked on!-->
<a href="/books/<%= book.get('objectId') %>" class="btn btn-primary">More Info</a>
</p>
</div>
</div>
<% }); %>
</div>
上面是html页面的示例,用于显示特定书籍的详细信息
答案 0 :(得分:0)
我终于明白了。在html上检索对象ID的正确方法是book.id而不是book.get(“ objectId”)。
app.get("/books/:id", function(req, res) {
//find the book with provided ID
var Books = Parse.Object.extend("Books");
var query = new Parse.Query(Books);
query.get(req.params.id).then(function(book) {
console.log('retrieved! ' + book.id);
res.render('show', {book: book});
}, function(error) {
console.log('error occured');
res.send('could not be retrieved');
});
});
在html文件上,
<p>
<a href="/books/<%= book.id %>">More Info</a>
</p>