Я использую express JS и Node JS для создания REST API
Я хотел бы создать объект json с помощью cheerio, который затем добавил бы в свою базу данных mongoDB.
Обещание - это практическое решение, но у меня все еще возникают проблемы с его созданием в JavaScript.
Я сделал этот тестовый код
Я создал контроллер с этой функцией, которая будет анализировать URL-адрес с помощью cherrio.
параметр url передается из почтового маршрута из моего API
exports.scrapData = (url) => {
console.log('Scrapping data', url);
return url;
}
Эта функция другого контроллера извлекает данные и сохраняет его в базе данных.
const Post = require('../models/Post');
const exportDataCtrl = require('./exportData');
exports.createDataWithUrl = (req, res, next) => {
let url = req.params.url;
const dataScrap = exportDataCtrl.scrapData(url);
const post = new Post({
...dataScrap
})
post.save()
.then(post => res.status(201).json({ message:'success !'}))
.catch(error => res.status(400).json({ error:error }))
}
EDIT: Добавление сообщения. js код, Post - это модель базы данных mongoDB, которую я создал для выполнения своих тестов.
const mongoose = require('mongoose');
const postSchema = mongoose.Schema({
title: { type:String, required:true },
description: { type:String, required:true },
contact_name: { type:String, required:true }
})
module.exports = mongoose.model('Post', postSchema);
Я попытался создать обещание с помощью функции scrap Data и функции save mongoDB, но я все еще понимаю, что функция затем возвращает неопределенный результат.
Думаю, что нет ' Я хорошо понимаю обещания, и ошибка должна быть очевидна.
Заранее благодарю вас за вашу помощь и ответы.