ERR_INVALID_ARG_TYPE 错误

问题描述 投票:0回答:2

我在学习 Angular 2 时从 API 获取数据时遇到问题。这是我遇到的错误

url.js:106 抛出新错误。TypeError('ERR_INVALID_ARG_TYPE', 'url', 'string', url); 类型错误 [ERR_INVALID_ARG_TYPE]:“url”参数必须是字符串类型。在 Url.parse (url.js:106:11) 处收到未定义的类型

这是我正在使用的代码

index.js

const express = require('express');
const app = express();

const MongoClient = require('mongodb').MongoClient;

require('dotenv').config();

let database;

MongoClient.connect(process.env.DB_CONN, (err, db) => {

console.log('connected to mongodb...');

app.listen(3000, () => {
    database = db;
    console.log('listening on port 3000...')
});
});

app.get('/contacts', (req, res) => {
const contactsCollection = database.collection('contacts');

contactsCollection.find({}).toArray((err, docs) => {
    if(err) {
        console.log(err);
    }
    return res.json(docs);
});
});

.env

DB_CONN=mongodb://admin:[email protected]:17931/dem-contact

我不明白这个错误,因为我使用的是 mlab mongodb,所以我唯一的 url 在我的 env 文件中。我的代码有什么问题吗?

javascript angular mongodb
2个回答
2
投票

您的 DB_CONN 变量需要一些引号。

DB_CONN=mongodb://admin:[email protected]:17931/dem-contact
应该
DB_CONN='mongodb://admin:[email protected]:17931/dem-contact'

您的 .env 文件应位于项目文件夹的根目录中(与 node_modules 文件夹相同的文件夹)

或者您可以将选项中的路径属性传递给

.config()
,例如:

.config({ path: '/somewhere/else/.env' })


0
投票

与具体问题无关,但对于未来的读者:

在其他情况下也会引发错误

ERR_INVALID_ARG_TYPE
。就我而言,我将
null
传递给
path.join()

© www.soinside.com 2019 - 2024. All rights reserved.