vue博客开发

本博客采用node.js(adonis.js)+vue.js的模式开发。

一、adonis.js的特点

1、各种的模块的调用

不像平时一样用require调用,而是把它绑定在一个网站的核心上,后面使用时直接从容器中取出,

因此所有东西只需配置一次,后期直接取出比较方便,而且有缓存无需实例化。

2.数据库有一个lucid模型

是一种active record,一对一、一对多、多对多对一等关联。路由包括一些路由组,还有增删改查等操作,有登录、授权等功能。

3、有验证器

youshi在开发过程中有许多时候需要验证数据,但使用其它node.js采用函数的方式将各种方法一直接连下去。adonis是定义一个规则和字段

后面定义一批验证规则,较前者更加方便。

4、对密码的支持

有时需要设置密码和使用散列,在adonis中以一些便捷的功能如:

* const Hash = use('Hash')j

 const safePassword = await Hash.make(request.input('password'))

将输入的密码变成加密之后的密码

* verify(value, hashedValue)

const Hash = use('Hash') const isSame = await Hash.verify('plain-value', 'hashed-value') if (isSame) { // ... }
验证加密之后密码和加密支持密码是否匹配

5、关于多语言
可以创建一些语言的文件,可以创建一些语言的文件,可以是文件型或数据库型然后在里面写一些键值对如:

{ "greeting": "Hello {name}" }Antl.formatMessage('messages.greeting', { name: 'virk' })在需要的时候访问message,可格式化文字及日期、数量等

6、命令行工具

Ace commands

可使用 adonis make:command Quote 创建一些命令

详情也可访问https://adonisjs.com/docs/4.1/installation


二、环境配置
1、安装
npm i -g @adonisjs/cli
adonis new yardstick
cd yardstick adonis
serve --dev
2、要获取可用命令的列表,可以运行这些命令来创建控制器、模型等:
adonis --help
3、帮助
在github上报告错误。
在论坛上讨论问题和分享想法。
twitter上保持更新。
三、adonis文件夹结构
1、app文件夹
存放网站的内容,所写代码一般都在app文件夹,里面有Models文件夹和Middleware文件夹。
2、config文件夹
是配置文件夹,有关网站的所有配置,有数据库配置,授权配置等,
3、database文件夹
关于数据库的初始化以及迁移数据库,主要用于关系数据库,创建表等都需要通过迁移来保证所有开发同服务器是同步的。
4、node_modules文件夹
所有node项目都需要把所有包安装在里面
5、stat文件夹
启动文件,如app.js是整个应用的一个核心启动文件,kernel.js大部分都是定义中间件,routes.js定义的·所有路由都在里面
6、env文件
是个环境变量文件,每个开发器环境都是不一样的,密码放于该文件夹可以保证密码不会外泄
7、serve文件
整个服务端都是以serve为入口,本地启动使用dev启动,正式启动采用serve.js来启动

四、adonis路由控制器
1、通过adonis make:conroller site创建一个controller
可以处理网站常见的路由
在roiutes.js 中Route.get('/','SiteController.index')前面为类名后面为方法
之后在SiteController.js写index方法

  class SiteController {
    index(){
      return {
        name:'home'
      }
    }
  }

return可以返回html,数组,字符串,Json对象等

五、从数据库调出数据

1、使用 adonis make:model post 创建post模式

通过adonis make:conroller post 创建post路由

在PostController.js中通过const Post = use('App/Models/Post')指定路径

在调用index()函数前使用async变为异步函数,使用 return await Post.all()调出帖子所有内容

await Post.create({

  titel: '我的第一篇博客'

})

async show({params}) {

  reuturn await Post.find(params.id)

  }

)

 

六、建立视图

1、在命令行输入 adonis make:view posts.index 创建psots视图

2、在resources/views/posts/index.edge 输入内容

 

<h1>我的博客</h1>

 

<ul>
@each(post in posts)
<li>{{post.title}}</li>
@endeach
</ul>

3、在PostController.js中查看视图

 

 

async index({ reques,view }){
const posts = await Post.all()
return view.render('posts.index',{
posts:posts.toJSON()
})
}

 




 

猜你喜欢

转载自www.cnblogs.com/rengeng/p/11852535.html