node+express中的数据库配置分离问题

最近学习web前端的时候遇到一个问题,就是实现数据库连接跟路由的分离。

这里所有的文件为了方便显示我让他们的跟目录都相同

具体实现如下:


1.conn.js  创建数据库连接池

var mysql = require( 'mysql')

//连接池
var pool = mysql. createPool({
host: '127.0.0.1',
user: 'root',
password: 'haosql',
database: 'mydb',
port: '3306'
})

function query( sql, options, callback){
pool. getConnection( function( err, conn){
if( err){
callback( err)
} else{
conn. query( sql, options, function( err, result, fields){

callback( err, result, fields) //事件驱动回调
conn. release() //释放连接
})
}
})
}

module. exports = query

这里我在数据库里面建立了一个user用户表

下面的api.js的功能是将数据表user里的所有用户信息以json的格式发送到前端接口(http://localhost:3000/api/userlist)

这样前端就能通过这个端口拿到数据

2. api.js  


var express = require( 'express')
var router = express. Router()
var crypto = require( 'crypto')

//导入数据库连接
var query = require( './conn')


router. get( '/userlist',( req, res) => {
var sql = $sql. user. userList
query ( "select * from user" , [], function ( err , result ) {
if ( err) {
console. log( err)
}
if ( result) {
console. log( "userlist--get请求成功")
res. send( result)
}
})
})


3.sever.js

// node 后端服务器

const fs = require( 'fs')
const path = require( 'path')
const bodyParser = require( 'body-parser')
const express = require( 'express')
const app = express()

const Api = require( './api')

//配置模板引擎和body-parser一定要在app.use(router)挂载路由之前
app. use( bodyParser. json()) //处理json
app. use( bodyParser. urlencoded({ extended: false})) //中间件

// 把路由挂载到app中
app. use( '/api', Api) //myapi是自己添加的,根据环境来

app. use( function( err, req, res, next){
var err = new Error( 'not found')
err. status = 404
next( err)
})
// 监听端口
app. listen( 3000)
console. log( 'success listen to port:3000......')

4.启动服务器

node server.js

相信小伙伴们看到这里已经明白了吧

这是本人第一次写博客,有什么不对还望指出,欢迎交流

猜你喜欢

转载自blog.csdn.net/weixin_38888773/article/details/80613393