Node.js + Express + MySQL + Sequelize example
const
db
=
require
(
"../models"
)
;
const
Tutorial
=
db
.
tutorials
;
const
Op
=
db
.
Sequelize
.
Op
;
exports
.
create
=
(
req
,
res
)
=>
{
if
(
!
req
.
body
.
title
)
{
res
.
status
(
400
)
.
send
(
{
message
:
"Content can not be empty!"
}
)
;
return
;
}
const
tutorial
=
{
title
:
req
.
body
.
title
,
description
:
req
.
body
.
description
,
published
:
req
.
body
.
published
?
req
.
body
.
published
:
false
}
;
Tutorial
.
create
(
tutorial
)
.
then
(
data
=>
{
res
.
send
(
data
)
;
}
)
.
catch
(
err
=>
{
res
.
status
(
500
)
.
send
(
{
message
:
err
.
message
||
"Some error occurred while creating the Tutorial."
}
)
;
}
)
;
}
;
exports
.
findAll
=
(
req
,
res
)
=>
{
const
title
=
req
.
query
.
title
;
var
condition
=
title
?
{
title
:
{
[
Op
.
like
]
:
`
%
${
title
}
%
`
}
}
:
null
;
Tutorial
.
findAll
(
{
where
:
condition
}
)
.
then
(
data
=>
{
res
.
send
(
data
)
;
}
)
.
catch
(
err
=>
{
res
.
status
(
500
)
.
send
(
{
message
:
err
.
message
||
"Some error occurred while retrieving tutorials."
}
)
;
}
)
;
}
;
exports
.
findOne
=
(
req
,
res
)
=>
{
const
id
=
req
.
params
.
id
;
Tutorial
.
findByPk
(
id
)
.
then
(
data
=>
{
res
.
send
(
data
)
;
}
)
.
catch
(
err
=>
{
res
.
status
(
500
)
.
send
(
{
message
:
"Error retrieving Tutorial with id="
+
id
}
)
;
}
)
;
}
;
exports
.
update
=
(
req
,
res
)
=>
{
const
id
=
req
.
params
.
id
;
Tutorial
.
update
(
req
.
body
,
{
where
:
{
id
:
id
}
}
)
.
then
(
num
=>
{
if
(
num
==
1
)
{
res
.
send
(
{
message
:
"Tutorial was updated successfully."
}
)
;
}
else
{
res
.
send
(
{
message
:
`
Cannot update Tutorial with id=
${
id
}
. Maybe Tutorial was not found or req.body is empty!
`
}
)
;
}
}
)
.
catch
(
err
=>
{
res
.
status
(
500
)
.
send
(
{
message
:
"Error updating Tutorial with id="
+
id
}
)
;
}
)
;
}
;
exports
.
delete
=
(
req
,
res
)
=>
{
const
id
=
req
.
params
.
id
;
Tutorial
.
destroy
(
{
where
:
{
id
:
id
}
}
)
.
then
(
num
=>
{
if
(
num
==
1
)
{
res
.
send
(
{
message
:
"Tutorial was deleted successfully!"
}
)
;
}
else
{
res
.
send
(
{
message
:
`
Cannot delete Tutorial with id=
${
id
}
. Maybe Tutorial was not found!
`
}
)
;
}
}
)
.
catch
(
err
=>
{
res
.
status
(
500
)
.
send
(
{
message
:
"Could not delete Tutorial with id="
+
id
}
)
;
}
)
;
}
;
exports
.
deleteAll
=
(
req
,
res
)
=>
{
Tutorial
.
destroy
(
{
where
:
{
}
,
truncate
:
false
}
)
.
then
(
nums
=>
{
res
.
send
(
{
message
:
`
${
nums
}
Tutorials were deleted successfully!
`
}
)
;
}
)
.
catch
(
err
=>
{
res
.
status
(
500
)
.
send
(
{
message
:
err
.
message
||
"Some error occurred while removing all tutorials."
}
)
;
}
)
;
}
;
exports
.
findAllPublished
=
(
req
,
res
)
=>
{
Tutorial
.
findAll
(
{
where
:
{
published
:
true
}
}
)
.
then
(
data
=>
{
res
.
send
(
data
)
;
}
)
.
catch
(
err
=>
{
res
.
status
(
500
)
.
send
(
{
message
:
err
.
message
||
"Some error occurred while retrieving tutorials."
}
)
;
}
)
;
}
;