我在学习Angular 2的过程中从API获取数据时遇到问题。这是我得到的错误
url.js:106抛出新的错误.TypeError('ERR_INVALID_ARG_TYPE','url','string',url); TypeError [ERR_INVALID_ARG_TYPE]:“url”参数必须是string类型。在Url.parse收到类型undefined(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:password@ds117931.mlab.com:17931/dem-contact
我不明白错误,因为我正在使用mlab mongodb,我所拥有的唯一网址就在我的env文件中。我的代码出了什么问题?
答案 0 :(得分:1)
你的DB_CONN变量需要一些引号。
DB_CONN=mongodb://admin:password@ds117931.mlab.com:17931/dem-contact
应该
DB_CONN='mongodb://admin:password@ds117931.mlab.com:17931/dem-contact'
你的.env文件应该在项目文件夹的根目录下(与node_modules文件夹相同的文件夹)
或者您可以将选项中的path属性传递给.config()
,如:
.config({ path: '/somewhere/else/.env' })