【发布时间】:2018-12-31 06:24:29
【问题描述】:
我正在根据此处发布的教程创建我的第一个 Vue 项目:https://developer.okta.com/blog/2018/02/15/build-crud-app-vuejs-node
这基本上是一个学习项目。我正在做的是创建一个 rifftrax 数据库——当前定义为标题、正文、亚马逊链接、是否免费(布尔值)、rifftrax 页面的 url 和海报/封面图片。 tutorial 使用 sequelize + sqlite。我查找了 sequelize-file 并安装了它,但我不太确定如何合并这两个概念(即如何完成 okta 设置并将 sequelize-file 模型添加到其中)。所以我正在寻求帮助。
这是我的代码:
import { movieImage } from './models/attachments';
const express = require('express')
const cors = require('cors')
const bodyParser = require('body-parser')
const Sequelize = require('sequelize')
const epilogue = require('epilogue')
const OktaJwtVerifier = require('@okta/jwt-verifier')
const oktaJwtVerifier = new OktaJwtVerifier({
clientId: '0oafs5gbi8zLaURtu0h7',
issuer: 'https://dev-943536.oktapreview.com/oauth2/default'
})
let app = express()
app.use(cors())
app.use(bodyParser.json())
// verify JWT token middleware
app.use((req, res, next) => {
// require every request to have an authorization header
if (!req.headers.authorization) {
return next(new Error('Authorization header is required'))
}
let parts = req.headers.authorization.trim().split(' ')
let accessToken = parts.pop()
oktaJwtVerifier.verifyAccessToken(accessToken)
.then(jwt => {
req.user = {
uid: jwt.claims.uid,
email: jwt.claims.sub
}
next()
})
.catch(next) // jwt did not verify!
})
// For ease of this tutorial, we are going to use SQLite to limit dependencies
let database = new Sequelize({
dialect: 'sqlite',
storage: './test.sqlite'
})
// Define our Post model
// id, createdAt, and updatedAt are added by sequelize automatically
let Post = database.define('posts', {
title: Sequelize.STRING,
body: Sequelize.TEXT,
amazon: Sequelize.STRING,
prime: Sequelize.BOOLEAN,
rifftrax_url: Sequelize.STRING
});
movieImage.addTo(posts)
// Initialize epilogue
epilogue.initialize({
app: app,
sequelize: database
})
// Create the dynamic REST resource for our Post model
let userResource = epilogue.resource({
model: Post,
endpoints: ['/posts', '/posts/:id']
})
// Resets the database and launches the express app on :8081
database
.sync({ force: true })
.then(() => {
app.listen(8081, () => {
console.log('listening to port localhost:8081')
})
})
【问题讨论】:
标签: node.js sqlite vue.js sequelize.js