博客系统如何随机插入大量文章数据
程序员文章站
2022-04-10 09:38:41
博客系统如何随机插入大量文章数据首先安装两个第三方模块npm instal lorem-ipsum --savenpm install slug --save在 public 文件夹下新建 data.js// 随机插入大量文章数据var loremipsum = require("lorem-ipsum"), slug = require("slug"), config = require("./config/config"), glob = require("glo...
博客系统如何随机插入大量文章数据
首先安装两个第三方模块
npm instal lorem-ipsum --save
npm install slug --save
在 public
文件夹下新建 data.js
// 随机插入大量文章数据
var loremipsum = require("lorem-ipsum"),
slug = require("slug"),
config = require("./config/config"),
glob = require("glob"),
mongoose = require("mongoose"); // 一个支持MongoDb的库
mongoose.connect(config.db);
var db = mongoose.connection;
db.on("error", function () {
throw new Error("unable to connect to database at " + config.db);
});
var models = glob.sync(config.root + "/app/models/*.js");
models.forEach(function (model) {
require(model);
});
var Post = mongoose.model("Post"); // 所有的文章信息保存在Post里面
var User = mongoose.model("User"); // 所有的用户信息保存在User里面
var Category = mongoose.model("Category"); // 所有的文章分类信息保存在Category里面
// 从User里面找到一条数据
User.findOne(function (err, user) {
if (err) {
return console.log("cannot find user");
}
Category.find(function (err, categories) {
if (err) {
return console.log("cannot find categories");
}
categories.forEach(function (category) {
// 循环
// 每个分类下面随机生成35条文章
for (var i = 0; i < 35; i++) {
// 随机生成一个文章标题
var title = loremipsum({ count: 1, units: "sentence" });
// 随机生成一个文章
var post = new Post({
title: title,
slug: slug(title),
content: loremipsum({ count: 30, units: "sentence" }),
category: category,
author: user,
published: true,
meta: { favorites: 0 },
comments: [],
created: new Date(),
});
// 保存新建的categories
post.save(function (err, post) {
console.log("saved post: ", post.slug);
});
}
});
});
});
再次运行 node data.js
即可
这么多数据如何分页
在 app/blog
下的 post.js
中写上以下接口
router.get('/', function (req, res, next) {
var conditions = { published: true };
if (req.query.keyword) {
conditions.title = new RegExp(req.query.keyword.trim(), 'i');
conditions.content = new RegExp(req.query.keyword.trim(), 'i');
}
Post.find(conditions)
.sort('-created')
.populate('author')
.populate('category')
.exec(function (err, posts) {
if (err) return next(err);
var pageNum = Math.abs(parseInt(req.query.page || 1, 10));
var pageSize = 10;
var totalCount = posts.length;
var pageCount = Math.ceil(totalCount / pageSize);
if (pageNum > pageCount) {
pageNum = pageCount;
}
res.render('blog/index', {
posts: posts.slice((pageNum - 1) * pageSize, pageNum * pageSize),
pageNum: pageNum,
pageCount: pageCount,
pretty: true,
});
});
});
本文地址:https://blog.csdn.net/Cool_breeze_/article/details/107302475
上一篇: C#中的虚方法和抽象方法的运用