Angular Universal正在使mongo db地图集不起作用

时间:2019-04-14 22:13:10

标签: angular mongodb mongoose angular-universal

我有一个 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)]: {} }

0 个答案:

没有答案