您的位置:首页 > 数据库 > Mongodb

开始一个Koa+mongodb项目(十三)渲染前端页面

2020-07-12 16:49 381 查看

4.14


因为电脑原因,
在第一章也说了
本来的微信小程序不能运行…
所以改用了网页前端,
也试了vue,但因为Vue运行也崩
所以就是普通的html网页前端,不跨域

一、配置前台路由

rouoter.get(’ ')

二、导入静态资源

前端也是在站长之家下的

目前我有三个页面

时间原因做了首页,有轮播图

文章和打卡页面(其实也是类似功能)

把下载下来的静态资源放入public,要新建一个新文件夹放入专门的前端资源区分。

三、修改路径

在views下新建default文件夹,放置前端页面

四、可修改端口

因为前后端没有分离,可以自行改端口,
前后端都可以用这个端口登录
我这里改了3008

五、局部分离

同之前分离后端页面。

六、轮播图实现

跟微信小程序的swiper是类似的
https://developers.weixin.qq.com/miniprogram/dev/component/swiper.html
参考
https://www.swiper.com.cn/api/index.html

轮播图在数据库建一个表

过程挺多,我是看教程的
我也不太明白

七、mongodb $in方法 渲染数据

与mysql的In查询是一致的。
Mongodb采用$in方式提升操作效率
可以优化。

1、 查询:
有两种方式,在PHP里循环查询和使用$in的方式。做一个查询1000条数据的示例如下:

view
plain
// 循环查询
for($i = 0; $i < count($array); $i++) {
$item = $collection -> findOne(array("_id" => new MongoId($array[$i])));
echo $item["profile"]["name"] . "<br />";
}
运行时间:0.52035784721375秒

view
plain
// 采用$in的方式
$mongoIds = array();
for($i = 0; $i < count($array); $i++) {
$mongoIds[] = new MongoId($array[$i]);
}
$cursor = $collection -> find(array("_id" => array('$in' => $mongoIds)));
while($item = $cursor-> getNext()){
echo $item["profile"]["name"] . "<br />";
}
运行时间:0.15661716461182秒
结果采用循环方式的运行时间为$in方式的3倍以上。
2、 更新:
还是两种方式,在PHP里循环更新和使用$in的方式。做一个查询1321条数据的示例如下:

view
plain
// 循环更新(目前删除blog时采用的方式)
foreach ($fans as $fan)
{
$feed = $db -> command(array("findAndModify" => $MONGO_DB_FEED,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: