Giter VIP home page Giter VIP logo

vue-reader's Introduction

基于vue+express+nodejs爬虫的移动书城 ssr版本

技术栈:vue + vue-router + vuex + webpack + axios + less + flex + express + nodejs + mysql + localStorage

预览地址

爬虫地址

自用sql文件下载,包含了本项目接口使用的数据,可直接导入mysql中,下载地址(百度网盘)下载地址(Google Drive)

使用说明

#克隆项目
git clone [email protected]:tgxhx/vue-reader.git

# 安装依赖
npm install

# 本地开发环境,同时会启动webpack-dev-server和express服务,访问http://localhost:8080
npm start

# 构建生产
npm run build

# 分析构建文件
npm run analyze

# 部署
sudo chmod +x docker-build.sh
./docker-build.sh

项目说明

2019-04-14更新

最近闲下来抽时间重构了一下这个项目的架构,将对应的node服务整合了进来,并且集成了docker构建及部署。

使用首先需要能连接到mysql,并先导入上面的sql文件,然后在server目录下创建config/index.js

module.exports = {
  mysql: {
    host: 'x.x.x.x',
    user: 'xxx',
    password: 'xxx',
    database: 'xxx',
    port: 3306,
  },
};

=============分隔线===============

该项目很早以前就开始写了,算是用vue写的第一个项目,所以代码还是有不少问题,但是应该很符合vue入门使用者的写法,比如直接修改state:this.$store.state.xx = xx。

最开始是用jQuery写了阅读器部分,后来为了学习,就尝试用vue重构,学习了整个vue技术栈。

后来想想阅读器写好了,没有书可不行,想想应该用爬虫爬点数据,于是各种查找node爬虫的资料,写了不少爬虫,本项目使用的爬虫地址在这:地址

数据有了,接下来该构建api了,谷歌了一下发现用express好像不错,于是又学习了express部分,构建了所需的api,地址在这

有的同学刚开始学习vue的时候可能有点茫然,不光是vue本身的用法、api、组件等等,查资料后发现还有vue-router、vuex等等需要学习。

本项目就是那个阶段写的第一个比较完善的vue项目,现在才拿出来是因为中间有不少事耽搁了,如果你想看代码,可能会发现不少地方跟自己写得很像,一共只有四个路由,够简单吧,但是用到的东西在其他复杂应用中也是必需的,仔细想想其实vue也就那么点东西,多写就容易了。

vue-router方面,常用的内容基本都用到了,比如 动态路由、编程式导航、命名路由、重定向、数据获取时的loading、懒加载等等。

vuex采用分离的写法,state、mutation、action分开写,方便维护。

另外本项目中还写了一些可直接迁移使用的组件、比如loading组件、左右弹出层的背景阴影组件。

功能

  • 首页推荐
  • 书籍详情
  • 相似推荐
  • 分类查看
  • 阅读器
  • 章节跳转
  • 更改字体
  • 更换主题
  • 夜间模式
  • 翻页浏览
  • 本地存储(存储每本书的阅读进度)
  • 书架(待考虑)

项目截图

vue-reader's People

Contributors

tgxhx avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vue-reader's Issues

数据库导入失败?

导入到Navicat,报错:completed with error
数据库没有导入成功,然后页面启动后空白页,请指教

MYSQL DB

Hello , can you upload the mysql file to another website , baidu is only accesible in china . thanks

章节底部无法点击翻页

章节快要到底的时候,没办法直接点击滚动到底部。
另外有没有可能做一个左右翻页的功能呢,就像百度阅读、潇湘书院那样的?好像网页上很难确定每个字符所占的空间,从而判断每页显示的字数。但是常用的文本字符也就那么多,中文占的空间还是固定的,个人感觉应该可以逐个计算出来吧

vue-reader/build/dev-server.js中缺少book/booklist路由代码

你好,

npm run dev

启动后,发现ajax请求book/booklist 报cancel了。发现在vue-reader/build/dev-server.js中缺少book/booklist路由代码, 加上就可以了。

app.get('/book/booklist', (req, res) => {
  let booklist = [
    {
        "id": 5,
        "name": "圣墟",
        "author": "辰东",
        "images": "http://qidian.qpic.cn/qdbimg/349573/1004608738/150",
        "ratings": 4.8,
        "wordcount": 114.84,
        "type": "玄幻",
        "intro": "在破败中崛起,在寂灭中复苏。沧海成尘,雷电枯竭,那一缕幽雾又一次临近大地,世间的枷锁被打开了,一个全新的世界就此揭开神秘的一角……",
        "serialize": "连载",
        "like": "145-82-29"
    },
    {
        "id": 1,
        "name": "择天记",
        "author": "猫腻",
        "images": "http://qidian.qpic.cn/qdbimg/349573/3347595/150",
        "ratings": 4.6,
        "wordcount": 188.29,
        "type": "玄幻",
        "intro": "命里有时终须有,命里无时要强求。这是一个长生果的故事。",
        "serialize": "连载",
        "like": "73-99-53"
    }
  ]
  res.send(booklist);
})

万分感谢您的开源项目vue-reader。

空白

还没弄数据库,但是为啥跑起来页面全空白

@touchmove:prevent

请问@touchmove:prevent是什么写法
编辑器报错

"message": "\n[vue/valid-v-on]\n'v-on' directives require that attribute value or verb modifiers.",
"source": "eslint-plugin-vue",

试了下v-on的写法,并不是

这个项目不是慕课网老师上传的视频的项目吗?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.