有一个问题,一个项目简单节点js app添加并从用户获取数据并保存到mongo(使用3 .. ver),一切正常(保存,获取等),例如
var express = require('express');
var router = express.Router();
var mongo = require('mongodb').MongoClient;
var objectID = require('mongodb').ObjectID;
var assert = require('assert');
const url = 'mongodb://localhost:27017';
const dbName = 'ldex';
const tblOffers = 'offers';
router.post('/insert', function (req, res, next) {
var order = {
type: 'Sell',
..............
max: req.body.max,
protection: req.body.protection,
comment: req.body.comment,
date: new Date().toDateString()
};
mongo.connect(url, function (err, client) {
assert.equal(null, err);
const db = client.db(dbName);
db.collection(tblOffers).insertOne(order, function (err, res) {
assert.equal(null, err);
console.log('Offer placed');
client.close();
})
});
res.redirect('/exchange')
});
但这是另一个应用程序,解析器,具有相同的mongo连接,它从其他网站添加一些数据(当不使用mongo一切都好,我收到的数据很好),这里是代码的一部分:
...
let assert = require('assert');
let mongo = require('mongodb').MongoClient;
let router = express.Router();
const url = 'mongodb://localhost:27017/';
const dbName = 'ceramo';
const tblOffers = 'items';
...
/*
* Get items from specific group
*/
function getGroupItems(url, callback) {
request({uri: url}, function (error, response, body) {
let list = [];
let $ = cheerio.load(body);
$('#tovar').find('a.cat_item_disc_a').each(function(i, elem) {
list[i] = 'https://plitkazavr.ru' + $(this).attr('href');
});
callback(list);
});
}
/*
* Parse one item from specific link
*/
function getItem(url) {
request({uri: url}, function (error, response, body) {
let list = {};
let $ = cheerio.load(body);
$('#item_border').find('> #item_prop > ul').find('li.item_list').each(function(i, elem) {
list[$(this).find('.item_cell').first().text()] = $(this).find('div.item_cell.item_val').text();
});
list.price = (parseFloat($('#item_price').text()));
list.img = ('https://plitkazavr.ru' + $('#item_img').attr('src'));
list.meta = ($('#item_wrap').find('meta[itemprop="description"]').attr("content"));
mongo.connect(url, function (err, client) {
assert.equal(null, err);
const db = client.db(dbName);
db.collection(tblOffers).insertOne(order, function (err, res) {
assert.equal(null, err);
console.log('Offer placed');
client.close();
})
});
});
}
router.get('/parse', function (req, res, next) {
getGroupItems('https://plitkazavr.ru/Naxos/Clio', function (items) {
items.forEach(function(item, i, arr) {
setTimeout(function() {
getItem(item);
}, 1000);
});
});
res.end('ok');
});
这是关于连接并给出
`Error: Invalid schema, expected `mongodb` or `mongodb+srv
不明白问题出在哪里,请帮忙......
答案 0 :(得分:1)
您的MongoDB网址似乎不完整,应该包含您的lb5.Text = dr["expectation"].ToString();
,然后才能将其传递到mongoose连接中
dbName
答案 1 :(得分:0)
不完全回答您的问题,但我的问题是环境变量值包含在不必要的撇号MONGODB_CONNECTION_URL="'mongodb:...'"
中。所以报道:
错误:架构无效,预期
mongodb
或`mongodb + srv