Hola amigos de la #Nerdytud.
En el día de hoy quiero compartirles un ejemplo sobre la creación de una api realizada con node.js interactuando con SQL Server.
Generar proyecto
mkdir apinode && cd apinode
npm init -y
Instalar dependencias
npm i express
npm i mssql
En el root de la aplicación creamos una carpeta denominada src
Generar archivo dbConfig.js
const dbConfig = {
user: 'usuario',
password: 'password',
server: 'localhost',
database: 'db',
options: {
trustedconnection: true,
trustServerCertificate: true,
enableArithAbort: true,
instancename: 'SQLEXPRESS',
},
port: 1433,
}
module.exports = dbConfig
Generar modelo
class RolesModel {
constructor(Id, Name) {
this.Id = Id
this.Name = Name
}
}
module.exports = RolesModel
Generar controller
const config = require('../dbConfig')
const sql = require('mssql')
async function getRoles() {
try {
let pool = await sql.connect(config)
let roles = await pool.request().query('SELECT * FROM Roles')
return roles.recordsets
} catch (error) {
console.error(error)
}
}
async function addRol(rol) {
try {
let pool = await sql.connect(config)
let addRol = await pool
.request()
.input('name', sql.NVarChar, rol.name)
.query('insert into roles values (@name)')
} catch (err) {
console.error(err)
}
}
module.exports = {
getRoles: getRoles,
addRol: addRol,
}
Generar api
const Roles = require('./src/controllers/RolesController')
const express = require('express')
const router = express.Router()
const app = express()
router.use((req, res, next) => {
console.log('middleware')
next()
})
router.route('/roles').get((req, res) => {
Db.getRoles().then((data) => {
res.json(data[0])
})
})
var port = process.env.PORT || 5000
app.listen(port)
console.log(`Ejecutandose en port ${port}`)