added articles api and desert.txt to the seed

This commit is contained in:
notnull 2019-01-29 13:07:05 -08:00
parent b370724294
commit f5c3a13fde
7 changed files with 1337 additions and 18 deletions

35
api/articles.js Normal file
View File

@ -0,0 +1,35 @@
const router = require('express').Router()
const { Article } = require('../db/models')
module.exports = router
router.get('/', async (req, res, next) => {
try {
const articles = await Article.findAll()
res.status(201).send(articles)
} catch (err) {
next(err)
}
})
router.get('/:id', async (req, res, next) => {
try {
const article = await Article.findById(req.params.id)
console.log(article.title)
console.log("by: " + article.author)
console.log(article.text)
res.status(201).send(article)
} catch (err) {
next(err)
}
})
router.post('/', async (req, res, next) => {
const body = req.body
try {
const article = await Article.create(body)
res.redirect(article.id)
} catch (err) {
next(err)
}
})

View File

@ -2,10 +2,11 @@ const router = require('express').Router()
module.exports = router
router.use('/items', require('./items'))
router.use('/articles', require('./articles'))
router.get('/', async (req, res, next) => {
try {
res.send('Hello from Express!')
res.send('/n-------/nHello from Express!/n--------/n')
} catch (err) {
next(err)
}

1
api/postcommand Normal file
View File

@ -0,0 +1 @@
curl -d {"title":"", "text": ""} -H Content-Type: application/json -X POST http://localhost:1337/api/articles

1248
db/desert.txt Normal file

File diff suppressed because it is too large Load Diff

20
db/models/article.js Normal file
View File

@ -0,0 +1,20 @@
const Sequelize = require('sequelize')
const db = require('../db')
const Article = db.define('articles', {
title: {
type: Sequelize.STRING,
allowNull: false
},
author: {
type: Sequelize.STRING,
defaultValue: "anonymous"
},
text: {
type: Sequelize.TEXT,
allowNull: false
},
})
module.exports = Article

View File

@ -1,3 +1,4 @@
const Item = require('./item')
const Article = require('./article')
module.exports = { Item }
module.exports = { Item, Article }

View File

@ -1,24 +1,37 @@
const db = require('../db')
const { Item } = require('./models')
const fs = require("fs")
const { Item, Article } = require('./models')
const desert = fs.readFileSync("/home/notnull/projex/bootstrap/server/db/desert.txt", "utf8")
const testItem = {
name: 'item'
name: 'item'
}
const testArticle = {
title: "Desert",
text: desert
}
console.log(Article)
async function runSeed() {
await db.sync({ force: true })
console.log('db synced!')
console.log('seeding...')
try {
await Item.create(testItem)
console.log('seeded successfully')
} catch (err) {
console.error(err)
process.exitCode = 1
} finally {
console.log('closing db connection')
await db.close()
console.log('db connection closed')
}
await db.sync({ force: true })
console.log('db synced!')
console.log('seeding...')
try {
await Item.create(testItem)
await Article.create(testArticle)
console.log('seeded successfully')
} catch (err) {
console.error(err)
process.exitCode = 1
} finally {
console.log('closing db connection')
await db.close()
console.log('db connection closed')
}
}
runSeed()