我已经开始创建meteor应用程序,我想在我使用后台任务定义的mongoDB集合中插入文档
比如说,我每天都在阅读rss提要,在网站上搜索新闻标题
要求
我所知道的
我知道怎么做。使用python,使用requests
和其他库。
我知道如何通过meteor中的javascript将信息添加到集合中,但通过遵循todo
示例应用程序教程,我知道如何通过后台任务将信息添加到集合中
可能的解决方案
最简单的例子来自this step of the todo app
我想自动化的步骤是:
meteor mongo
db.tasks.insert( { text : 'New title' , createdAt: new Date() } );
其中New title
是一些废弃/rss提要的结果
实现这一目标的最佳方式是什么?我比较精通python,但对JS和meteor完全陌生
其他评论
此外,我还没有在下面的示例中包括这一点,但我还希望使用accounts-ui
和accounts-password
包,并将删除insecure
包。不确定这将如何影响后台进程的实现
最小示例
(如果这不是很小,很抱歉,但不确定如何使其变小)
client/main.html
<head>
<title>Todo List</title>
</head>
<body>
<div id='render-target'></div>
</body>
client/main.jsx
import React from 'react';
import { Meteor } from 'meteor/meteor';
import { render } from 'react-dom';
import App from '../imports/ui/App.jsx';
Meteor.startup( () => {
render( <App/> , document.getElementById( 'render-target' ) );
});
server/main.js
import '../imports/api/tasks.js'
imports/api/tasks.js
import { Mongo } from 'meteor/mongo';
export const Tasks = new Mongo.Collection( 'tasks' );
imports/ui/App.jsx
import React , { Component , PropTypes } from 'react';
import { createContainer } from 'meteor/react-meteor-data';
import { Tasks } from '../api/tasks.js';
import Task from './Task.jsx';
class App extends Component {
renderTasks() {
return this.props.tasks.map( ( task ) => (
<Task key={task._id} task={task} />
) );
}
render() {
return (
<div className='container'>
<header>
<h1>Todo List</h1>
</header>
<ul>
{ this. renderTasks() }
</ul>
</div>
);
}
}
App.propTypes = {
tasks : PropTypes.array.isRequired,
};
export default createContainer( () => {
return {
tasks : Tasks.find( {} ).fetch(),
};
} , App );
imports/ui/Task.jsx
import React, { Component , PropTypes } from 'react';
// Task component - represents a single todo item
export default class Task extends Component {
render() {
return (
<li>{this.props.task.text}</li>
);
}
}
Task.propTypes = {
// This component gets the task to display through a React prop.
// We can use propTypes to indicate it is required
task: PropTypes.object.isRequired,
};
使用您最熟悉的语言和工具进行刮取和插入,因为您提到了python,我想这将是您的选择。Pymongo使将python dict写入mongo变得非常容易
您可以运行自己的mongo版本,也可以访问默认版本。要获取默认连接字符串,请将cd放入meteor目录并键入:
可能是这样的mongodb://127.0.0.1:3001/meteor. 因此,要从python连接到它:
然后插入:
如果你使用你自己的数据库,反应流星组件将每10秒更新一次(它轮询)。如果您使用默认值,它将是即时的
相关问题 更多 >
编程相关推荐