javascript - 如何获取 createAt 对象?
问题描述
我现在正在使用 node js 构建一个简单的网站。
但是,在创建过程中,没有输出文档中的对象。下面的代码是一个简单的模式。
// model/Post.js
const PostSchema = new Schema({
title: String,
body: String,
createdAt: {
type: Date,
default: Date.now
},
updatedAt: Date
});
// routes/posts.js
const express = require('express');
const app = express.Router();
const Post = require('../models/Post');
router.get('/', function(req, res){
const query = Post.find({});
query.select('-createdAt');
query.exec(function(err, posts){
if (err) return console.error(err);
res.render('posts/index', { posts: posts });
});
});
我想在 postSchema 中加载 createdAt 并在 html 中打印,我该怎么办?
下面是部分html代码。
<!-- views/posts/index.ejs -->
<% posts.forEach(post => { %>
<tr>
<td>
<a class="nav-link" href="/posts"><div class="ellipsis"><%= post.title %></div></a>
</td>
<td><%= post.createdAt %></td> <!-- I want to print createdAt -->
</tr>
<% }) %>
我正在使用包 express、ejs、mongoose
如何打印 createdAt 对象?
解决方案
在您的代码中删除 query.select('-createdAt') ,基本上它会在结果中删除 createdAt ,并且您将从模式中获取所有其他属性。
router.get('/', function(req, res){
const query = Post.find({});
query.exec(function(err, posts){
if (err) return console.error(err);
res.render('posts/index', { posts: posts });
});
});
推荐阅读
- javascript - ajax没有发回PHP响应
- vmware - VMWare - 多个 VM 与一个特定 VM(不是 ESX)的同步时间
- python-3.x - 将整数转换为日期
- api-design - 如何在 API 网关中复合多个 API 调用?
- java - 在android studio中获取带有JSON的数组列表
- r - 我想替换 R 中数据集中年份列的“NA”值
- ios - 在 swift4 中未调用 DatabaseReference.observe
- c# - 异步调用适用于控制台但不适用于 webapi
- python - 即使使用 requests.history 从重定向 2 次的 url 下载 pdf 文件也会失败
- javascript - ES6 async/await 在 Observables 和流失败时如何工作?