如何在同一NodeJs服务器上使用Mysql和MongoDB?

4

我有一个使用NodeJS和Express JS编写的REST API。这是我需要实现的基本功能。有一个MySQL数据库,我的NodeJS服务器在某些特定条件下读取该数据库,并需要在MongoDB服务器上记录日志。这就是架构,不能改变。因此,在同一NodeJs服务器中同时使用MySQL和MongoDB是否可能?

2个回答

4

是的,这完全可行,它们使用完全不同的端口,彼此之间没有关联。

服务器不是一个“nodejs”服务器,而是运行nodejs的服务器,您可以在服务器上安装任何您想要的软件。


非常感谢。我已经搜索了很多,但仍然没有答案。你有一些代码片段或链接可以展示一下吗? - Root SL
1
没有代码片段,只需将它们安装在服务器上。 - darryn.ten

1

您可以直接在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}`)
})

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接