我有一个 NodeJs 服务器和一个用 Angular Universal 呈现的Angular 7前端。我将此服务器托管在 Heroku 上。
我想将 MongoDB 添加到服务器,我没有将信用卡与Heroku链接,因此除了Heroku之外,我还使用 MongoDb Atlas 。
问题是这样的:当我尝试在渲染Angular Universal Frontend的服务器上连接到它时,它不起作用。
问题不是Heroku的问题,因为它也发生在本地开发中。 我可以确认Mongo Atlas运作良好,可以同时使用shell和nodejs来连接它。
我尝试了使用Angular Universal的代码,也没有使用。第一个无效,第二个有效。
当我将其与Universal一起使用时,就好像连接请求被阻止了。
前两次导入使MongoDB和mongoose都无法工作
require('zone.js/dist/zone-node');
require('reflect-metadata');
const mongoose = require('mongoose');
mongoose.connect(`mongodb+srv://<user>:<pass>@<cluster>.mongodb.net/test?retryWrites=true`, {useNewUrlParser: true})
.then(() => {
console.log(`Connected to MongoDB `);
mongoose.connection.close();
console.log('ciao');
})
.catch(err => console.error(err));
这有效
//require('zone.js/dist/zone-node');
//require('reflect-metadata');
const mongoose = require('mongoose');
mongoose.connect(`mongodb+srv://<user>:<pass>@<cluster>.mongodb.net/test?retryWrites=true`, {useNewUrlParser: true})
.then(() => {
console.log(`Connected to MongoDB `);
mongoose.connection.close();
console.log('ciao');
})
.catch(err => console.error(err));
编辑:除了该问题之外,如果我多次启动程序而没有等待很多时间(即使没有通用时间),我也会收到此错误:
{ MongoParseError: Multiple texts records not allowed
at QueryReqWrap.dns.resolveTxt [as callback] (D:\Github\unitn-statistica\node_modules\mongodb-core\lib\uri_parser.js:93:27)
at QueryReqWrap.onresolve [as oncomplete] (dns.js:199:10)
name: 'MongoParseError',
[Symbol(mongoErrorContextSymbol)]: {} }