问题似乎是与mongoose和mongodb包,因为它的工作正常时
mongoose.connect('mongodb+srv://mydb:<password>@cluster0.w1opr.mongodb.net/test?retryWrites=true&w=majority');
它也可以在www.example.com云环境中正常工作repl.it,这是我的代码
var express = require('express');
var ejs = require('ejs');
var app = express();
var bodyParser = require('body-parser');
var mongoose = require('mongoose');
mongoose.connect('mongodb+srv://mydb:<password>@cluster0.w1opr.mongodb.net/test?
retryWrites=true&w=majority');
app.set('view engine','ejs')
app.use(bodyParser.urlencoded({extended: true}));
.
.
.
app.listen(3000,function(){
console.log('Server is running on port 3000');
});
5条答案
按热度按时间hrirmatl1#
实际上,mongoose 6需要节点12或更高版本,因此这是预期行为。Mongoose 6不支持节点10。因此,更新节点版本将修复此问题。它还通过将mongoose版本降级到5修复此问题。
8fsztsew2#
检查你的节点版本,如果低于12就不能工作,如果是这样的话,更新节点就可以了。你也可以降级你的mongoose版本。
Mongoose github页面上有一个问题已关闭。https://github.com/Automattic/mongoose/issues/10638
yebdmbv43#
要摆脱此错误在Windows升级到最新版本的Node.js通过访问此网站https://nodejs.org/en/download/和下载最新版本的Node.js否则如果你不想升级到最新版本,那么你可以摆脱此错误添加此行在文件的顶部node_modules/whatwg-url/dist/encoding.js:
mwg9r5ms4#
对我来说,我使用的是UBUNUTU 20.04,因为@MuhammadTariq说我的节点版本是10,升级到16后,错误消失了。
soat7uwm5#
使用测试时也有同样的问题。在我的jest配置中将testEnvironment设置为node修复了它(https://mongoosejs.com/docs/jest.html)