【发布时间】:2018-07-08 14:58:19
【问题描述】:
我有一个现有的 Node.js/Express 应用程序,它连接到 2 个独立的数据库,它有一个用于所有关系数据的 MySQL 数据库和一个用于非关系垂直数据的 MongoDB 存储。
它使用 Sequelize 和 Mongoose 并且运行得非常流畅。
我今天一直在看 Next.js,我印象非常深刻,我对 React 的一个小毛病实际上是有多少引导程序以及实现简单的事情需要多少代码。 Next.js 似乎为我解决了其中一些问题,所以我愿意接受它。
第一个问题 - 是否可以将 Next.js 连接到现有数据库并直接在视图中读取它们的对象?
例如./server.js:
const mongoDb = mongoose.connect(configDB.url); // MongoDB connection
const models = require('./models'); // Sequelize connection
app.prepare().then(() => {
server.use((req, res, next) => {
req.mongodb = mongoDb
req.mysqldb = models
// Logging req.mysqldb/req.mongodb at this point gives the correct result.
next()
});
server.get('*', (req, res) => {
return handle(req, res)
})
})
./pages/index.js:
Index.getInitialProps = async function(req) {
console.log(req.mongodb);
console.log(req.mysqldb)
// Example of what I want: req.mysqldb.users.findAll()....... to populate collection for this view
}
当控制台语句在 index.js 页面中执行时,它们被记录为未定义。
理想情况下我想直接在 next.js 模板中使用 objects/ORM 层,我不想在内部调用自己的 API,这似乎是一种巨大的资源浪费!
任何帮助,不胜感激。
【问题讨论】:
标签: node.js mongodb express sequelize.js next.js