我有一个使用NodeJS和Express JS编写的REST API。这是我需要实现的基本功能。有一个MySQL数据库,我的NodeJS服务器在某些特定条件下读取该数据库,并需要在MongoDB服务器上记录日志。这就是架构,不能改变。因此,在同一NodeJs服务器中同时使用MySQL和MongoDB是否可能?
是的,这完全可行,它们使用完全不同的端口,彼此之间没有关联。
服务器不是一个“nodejs”服务器,而是运行nodejs的服务器,您可以在服务器上安装任何您想要的软件。
您可以直接在app.js(启动文件)中编写以下mongodb和mysql数据库连接代码
或者您可以按照以下方式编写单独的mongo和mysql连接文件:
步骤1.创建名为mongodb_con.js的文件
mongoose.connect('mongodb://localhost:27017')
.then(sucess => {
console.log("connected with mongo server...")
})
.catch(error => {
console.log("error while connecting to database...")
})
步骤2:创建名为mysql_con.js的文件。
const mysql = require("mysql")
var con = mysql.createConnection({
host: "localhost", //your hostname
user: "root", //your username
password: "root", //your password
database: "detabase_name" //your database name
})
con.connect((error) => {
if (!error) {
console.log("connected with sql server")
}
else {
console.log("Error in Making Connection...", error)
}
})
步骤三:在最后一步中,只需在app.js中导入这两个文件即可。
const express = require('express')
const app = express()
require('./mongodb_con.js')
require('./mysql_con.js')
const port = 3000
app.get('/', (req, res) => {
res.send('Hello World!')
})
app.listen(port, () => {
console.log(`Example app listening on port ${port}`)
})