博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
博客系统如何随机插入大量文章数据
阅读量:2054 次
发布时间:2019-04-28

本文共 2995 字,大约阅读时间需要 9 分钟。

博客系统如何随机插入大量文章数据

首先安装两个第三方模块

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, }); });});

转载地址:http://rcclf.baihongyu.com/

你可能感兴趣的文章
VisualVM 提示 tomcat 不受此jvm支持解决办法
查看>>
Java Guava中的函数式编程讲解
查看>>
Eclipse Memory Analyzer 使用技巧
查看>>
tomcat连接超时
查看>>
谈谈编程思想
查看>>
iOS MapKit导航及地理转码辅助类
查看>>
检测iOS的网络可用性并打开网络设置
查看>>
简单封装FMDB操作sqlite的模板
查看>>
iOS开发中Instruments的用法
查看>>
iOS常用宏定义
查看>>
被废弃的dispatch_get_current_queue
查看>>
什么是ActiveRecord
查看>>
有道词典for mac在Mac OS X 10.9不能取词
查看>>
关于“团队建设”的反思
查看>>
利用jekyll在github中搭建博客
查看>>
Windows7中IIS简单安装与配置(详细图解)
查看>>
linux基本命令
查看>>
BlockQueue 生产消费 不需要判断阻塞唤醒条件
查看>>
ExecutorService 线程池 newFixedThreadPool newSingleThreadExecutor newCachedThreadPool
查看>>
强引用 软引用 弱引用 虚引用
查看>>